ASP.NET服务器不会asynchronous处理页面

我有一个页面的button,我想通过点击buttonasynchronous加载2数据网格与数据。

这是页面的代码,我使用jQuery来调用其他2页,将产生我的HTML。

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Solutions_CashCenter_StockManagement_Test_Test" %> <asp:Content ID="Content2" ContentPlaceHolderID="cphCenter" Runat="Server"> <style type="text/css"> #wait { position:absolute; top:0px; right:10px; width:200px; z-index:1000; vertical-align:middle; text-align:center; background: #febf00; display:none; } </style> <script src='<%= ResolveUrl("../../../../Scripts/jquery-1.4.1.js") %>' type="text/javascript"></script> <script type="text/javascript"> $(function () { $('#wait') .ajaxStart(function () { $(this).show(); }) .ajaxStop(function () { $(this).hide(); }); $('input:button').live('click', loadData); }); function loadData() { $.get("Source.aspx", {}, function (data) { $('#a1').html(data); }, "html"); alert('This alert is asynchronous (1st)'); $.get("Source2.aspx", {}, function (data) { $('#a2').html(data); }, "html"); alert('This alert is asynchronous (2nd)'); } </script> <div id="test13"> <input type="button" id="btnLoad" value="Load" /> </div> <div id="a1"></div> <div id="a2"></div> <div id="wait">Please wait <img src="ajax-loading.gif" /></div> </asp:Content> 

然后我有2个aspx页面,Source1.aspx和Source2.aspx。 他们只包含一个gridDataView和OnLoad事件中的less量代码。

 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Source.aspx.cs" Inherits="Solutions_CashCenter_StockManagement_Test_Source" %> <form runat="server"> <cc1:GridDataView runat="server" ID="gridTest" > </cc1:GridDataView> <asp:SqlDataSource ID="dsTest" runat="server" ConnectionString="<%$ ConnectionStrings:WebPortalConnectionString %>" ProviderName="<%$ ConnectionStrings:WebPortalConnectionString.ProviderName %>"> </asp:SqlDataSource> </form> 

服务器端:

 Thread.Sleep(5000); dsTest.SelectCommand = "SELECT 'test1', 'test2', 'test3'"; this.gridTest.DataSourceID = "dsTest"; this.gridTest.DataBind(); 

而第二页也是一样的,但是网格的数据不同。

我得到的结果是两个警报立即发生,但网格一个接一个地加载,也就是第一个网格在5秒后出现,然后第二个在另外5秒之后出现。 这是服务器并不实际处理它们。

我做错了什么,我应该如何组织所有工作,因为我需要?

发生这种情况是因为会话locking了页面读取。
所以当加载一个页面时,会话locking所有其余的请求,直到完成并发送页面。

为了使它工作,你需要ether来禁用这个页面上的会话,ether使用处理程序是没有默认的会话locking。

相关问题:

尝试使Web方法asynchronous
在共享相同会话的同时处理另一个networking应用时,Web应用被阻止
什么性能计数器有助于识别ASP.NET瓶颈?
完全取代ASP.Net的会话