我在項目中使用Typescript和jQuery ajax。在其中一個應用程序頁面(類似於儀表板)中,我有15個網格,每個網格都帶有WebApi調用和一些額外的調用來呈現某些組合框。除此之外,在我的應用程序標題中,我還有其他組件正在爲用戶和其他組合框請求數據。最後,當我加載特定頁面時,ajax調用的數量將達到。Internet Explorer 9隨機不進入jQuery Ajax完成回調
一切都在瀏覽器,Mozilla和IE工作罰款> = 10 在IE9,有時會發生從這些24 一個特定呼叫到不進入AJAX done
回調。這個電話沒有什麼特別之處。在網絡中,它的請求將從後端返回status 200
,所以它應該輸入回調。收到的JSON是有效的,ajax調用每次都是一樣的,但它的行爲不同。
如果我刪除所有其他呼叫並只留下有問題的呼叫,則問題不再發生。
IE9在短時間內發出的ajax調用數量有問題嗎?
我正在使用Typescript和我的功能是使請求如下。
public Request(controllerActionName: string, method: string, data?: Object, headersData?: Object, countRequest: boolean = true) {
let dataType = "json";
let headers = _.extend({ "accept": "application/json; odata=verbose" }, headersData);
if (method === "DELETE") {
dataType = "";
}
if (BaseWebApi.asyncRequestCount === 0 && countRequest) {
PubSub.publishSync(OsiIDs.NotifyAsyncOperation, true);
}
console.log(controllerActionName + "/" + method + " ---- prevCount: " + BaseWebApi.asyncRequestCount + " ---- nextCount: " + (BaseWebApi.asyncRequestCount + 1));
countRequest && BaseWebApi.asyncRequestCount++;
let response = $.ajax({
url: this.module + controllerActionName,
method: method,
headers: headers,
contentType: (method.toLowerCase() === "get" ? "" : "application/json"),
dataType: dataType,
data: (method.toLowerCase() === "get" ? data : JSON.stringify(data))
});
response.done(() => {
if (BaseWebApi.asyncRequestCount === 1 && countRequest) {
PubSub.publishSync(OsiIDs.NotifyAsyncOperation, false);
}
console.log(controllerActionName + "/" + method + " ---- prevCount: " + BaseWebApi.asyncRequestCount + " ---- nextCount: " + (BaseWebApi.asyncRequestCount - 1));
countRequest && BaseWebApi.asyncRequestCount--;
}).fail((data, code, message) => {
if (BaseWebApi.asyncRequestCount === 1 && countRequest) {
PubSub.publishSync(OsiIDs.NotifyAsyncOperation, false);
}
console.log(controllerActionName + "/" + method + " ---- prevCount: " + BaseWebApi.asyncRequestCount + " ---- nextCount: " + (BaseWebApi.asyncRequestCount - 1));
countRequest && BaseWebApi.asyncRequestCount--;
});
return response;
}
綁定ajax調用會解決這個問題嗎?
感謝