2010-09-21 40 views
0

我有一個頁面,做一個AJAX請求。此請求可能需要一段時間才能完成,有時會超過一分鐘。這不是問題。無法加載網頁後做AJAX請求

在AJAX請求期間,我無法加載網站上的任何其他頁面。這對任何Web瀏覽器都是一樣的。

據我所知,在瀏覽器,IIS和ASP.NET中有連接限制 - 但它們都允許至少2個連接。

我正在使用IIS7和ASP.NET 4.0。

我已經提出了一些示例代碼來演示這個問題。 的代碼是在這裏: http://pastebin.com/A4WqUMbp

在這裏看到了問題的一個視頻: http://www.screencast.com/users/steel_andrew/folders/Jing/media/d53f74e2-5fb7-44a7-b641-526d9d4d5f0a 您可以在視頻中看到,被打開,直到AJAX請求完成不返回頁面中的第二個選項卡。

任何幫助將不勝感激。

感謝, 安德魯

+0

什麼樣的錯誤你得到訪問其他網頁?爲什麼需要這麼長時間(沉重的sql查詢/ IO訪問/等)? – 2010-09-21 15:45:13

+0

我已更新我的帖子,更多信息。克勞迪奧 - 長期的要求不是問題。查看我的示例代碼和視頻。 – andyuk 2010-09-22 09:09:22

回答

0

我找到了我的問題的答案。 kizzie33是對的,這是一個會話問題。

據微軟稱:

訪問ASP.NET會話狀態是 每個會話,這意味着 ,如果兩個不同的用戶做出 併發請求獨佔,訪問每個 單獨的會話被授予 同時。但是,如果對 同一會話(通過使用相同的 SessionID值)進行了兩個 併發請求,則第一個請求 將獲得對會話 information.information的獨佔訪問權限。

從MSDN頁攝於ASP.NET Session State Overview

1

我不知道的ASP但如果你使用一個會話,那麼你只能在同一時間打開的會話中運行一個腳本,即僅適用於PHP,但我會檢查CUS我有問題。

+0

我對PHP很熟悉,但我不知道你正在談論的限制。可以同時執行AJAX請求。在IE6/7中,限制是2個連接,其他瀏覽器允許更多。引用某些東西的鏈接會很棒。 – andyuk 2010-09-21 15:49:25

0

目前還不清楚,你的意思是由

在AJAX請求我無法 負載上websiteload網站上的任何其他網頁上的任何其他頁面。

你是說當前頁面停止頁面渲染,還是你說瀏覽器本身停滯不前,用戶無法做任何事情?在網站上加載任何其他頁面?你確定你所指的AJAX調用真的是異步嗎?你能分享一下它的實際代碼嗎?

+0

在AJAX調用之後發出的第二個請求阻塞,直到AJAX請求完成。我無法在網站上加載任何其他頁面。我會通過鏈接到示例代碼更新我的問題。 – andyuk 2010-09-22 08:36:36