有個小夥子告訴我,一個頁面上同時開啟多個ajax,向背景請求資料,會被堵塞。
“因為是同一個會話。但如果在控制器上加上這個特性就可以了”,小夥子說。
//session隻讀,避免同一會話中session鎖導緻請求阻塞
[SessionState(System.Web.SessionState.SessionStateBehavior.ReadOnly)]
public class CxController : BaseLT.Web.UserControllerBase
{
。。。。
}
經測試,還真是。如果沒有這個特性,多個ajax請求到了背景,原本是并發的,結果變成了隊列,一個接一個地完成。如果加上,則是并行完成。
個中原因,可以看以下參考資料:
ASP.net Session阻塞、Session鎖、MVC Action請求阻塞問題