從Visual Studio調試器運行MVC4網站時出現問題,如果頁面打開太多,ajax請求需要很長時間才能開始發送。非常奇怪的是,如果我關閉其中一個頁面,請求將立即開始。ajax請求很長的「等待」時間MVC4
更多詳細信息... 框架:MVC 4 IDE:Visual Studio 2010中 瀏覽器:IE 9 /鉻
控制器:
[Authorize]
[SessionState(SessionStateBehavior.Disabled)]
public class AnalyticsController
: Controller
{
public ActionResult SaveWorkspace(Workspace model)
{
var returnVal = _save(model);
return Json(new { actionResult = returnVal, messages = new string[] {} });
}
}
我與既有AsyncController和繼承試過這種從Controller獲得相同的結果。
客戶:
$.ajax({
url: '/Analytics/SaveWorkspace',
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(workspace),
success: function (result) {
alert("Function Executed");
}
});
以上是Ajax調用我使用。我所做的是點擊我的網頁上的各種鏈接,這將打開新的窗口。對於我的測試,我從調試器打開了初始瀏覽器,並從主頁打開了其他5個瀏覽器。上面的調用立即從我的調試器啓動的窗口執行,但是當我查看來自網絡捕獲的請求時,它會說「等待」,直到它最終超時。
現在有趣的部分是,如果我關閉任何一個窗口,我產生的請求將從掛起更改並轉到我的控制器並按預期返回。多玩一會兒,如果我再試一次(不打開額外的瀏覽器),它會立即發送到服務器,但如果我打開第5個瀏覽器,則會再次變慢。我做了各種測試以確保特定窗口沒有任何問題,它似乎是導致我的請求不被髮送的5個瀏覽器的幻數。
以下是我關閉第5個瀏覽器窗口時成功請求的屏幕截圖。
這裏是我的請求頭的捕捉
這裏是我的響應頭的捕捉
這裏是我的計時
最主要的捕獲我不明白爲什麼有46秒的等待期,然後是兩個開始期。看起來第一個啓動階段是長期的,第二個啓動階段發生在我關閉第五個瀏覽器窗口時。
我試圖提供儘可能多的細節以及數據以幫助診斷正在發生的事情。如果有什麼我可以做的,以繪製更好的圖片,隨時發表評論。任何建議都會受到歡迎。
謝謝大家!
你沒有真正解釋這個'_save(model)'方法在你的控制器動作中實際做了什麼。爲了進一步調試這個問題,我將首先通過虛擬化控制器操作並擺脫這種'_save'調用。你現在可以觀察到同樣的行爲嗎?如果不是,那麼顯然這個問題出現在'_save'方法中。如果是的話,那麼,這很奇怪。另外你怎麼可能使用IE來做Web開發?嘗試使用網絡瀏覽器,而不是IE瀏覽器。 –
我不相信這是_save(模型),因爲它甚至沒有提出這一點,因爲請求正在等待。如果我要刪除這些代碼,我仍然會遇到同樣的問題。 – mvcNewbie