程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 為特定異步回發賦予優先級

為特定異步回發賦予優先級

編輯:關於ASP.NET

默認情況下,當某個頁同時生成多個異步回發時,最近生成的回發將優先。某些情況下,可以為特定的異步回發賦予優先級並取消其他回發。

先決條件

若要在您自己的開發環境中實現這些過程,您需要:

Microsoft Visual Studio 2005 或 Microsoft Visual Web Developer 速成版。

一個支持 AJAX 的 ASP.NET 網站。

創建用於為特定回發元素賦予優先級的腳本

首先,創建用於管理浏覽器中的異步回發的 ECMAScript (JavaScript) 代碼。

創建用於為特定回發元素賦予優先級的腳本

在 ASP.NET 網站中,添加 JScript 文件並將其命名為 PostbackPrecedence.js。

向文件中添加以下腳本:

Sys.Application.add_load(ApplicationLoadHandler)
function ApplicationLoadHandler(sender, args)
{
   if (!Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack())
   {
    Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(InitializeRequest);
   }
}

var divElem = 'AlertDiv';
var messageElem = 'AlertMessage';
var exclusivePostBackElement = 'Button1';
var lastPostBackElement;
function InitializeRequest(sender, args)
{
   var prm = Sys.WebForms.PageRequestManager.getInstance();
   if (prm.get_isInAsyncPostBack() &&
     args.get_postBackElement().id === exclusivePostBackElement)
   {
     if (lastPostBackElement === exclusivePostBackElement)
     {
      args.set_cancel(true);
      ActivateAlertDiv('visible', 'A previous postback is still executing. The new postback has been canceled.');
      setTimeout("ActivateAlertDiv('hidden','')", 1500);
     }
     else if (lastPostBackElement !== exclusivePostBackElement)
     {
      prm.abortPostBack();
     }
   }
   else if (prm.get_isInAsyncPostBack() &&
        args.get_postBackElement().id !== exclusivePostBackElement)
   {
     if (lastPostBackElement === exclusivePostBackElement)
     {
       args.set_cancel(true);
       ActivateAlertDiv('visible', 'A previous postback is still executing. The new postback has been canceled.');
       setTimeout("ActivateAlertDiv('hidden','')", 1500);
     }
   }
   lastPostBackElement = args.get_postBackElement().id;
}

function ActivateAlertDiv(visString, msg)
{
    var adiv = $get(divElem);
    var aspan = $get(messageElem);
    adiv.style.visibility = visString;
    aspan.innerHTML = msg;
}
if(typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded();

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved