簡體   English   中英

XMLHttpRequest僅在Internet Explorer中花費很長時間

[英]XMLHttpRequest takes very long only in Internet Explorer

我們最近發現了一個問題,當從Internet Explorer導航到網站上的通用頁面時,出現消息“此網頁由於長時間運行的腳本而沒有響應”,因此該網頁暫時凍結。

經過調查,我發現它是由AJAX XMLHttpRequest引起的,該過程需要30-45秒才能完成。 通常,當這樣的AJAX調用存在性能問題時,長時間的等待時間就是在等待服務器響應的過程中。 但是在這里,創建請求並發送請求的等待時間很長:

啟動時間長

請注意,此請求在Google Chrome瀏覽器中完全沒有問題,只需要200毫秒:

在Chrome中快速

這些結果在每次刷新頁面時都是一致的。 還要注意,這既不是很大的請求,也不是很大的響應。 請求主體實際上是空的:

空的要求

並且響應非常小:

在此處輸入圖片說明

我認為由於問題似乎是在客戶端,所以腳本必須要解決一些問題,但是我們對所有AJAX調用都使用相同的泛型函數,而其他任何問題都沒有此問題:

JSONRequest: function (url, type, data, success, error) {
        var customError = function (er) {
            console.log(er);
        }
        if (error !== 'undefined' && error != null)
            customError = error;
        $.ajax({
            url: url,
            type: type,
            cache: false,
            data: JSON.stringify(data),
            contentType: 'application/json; charset=utf-8',
            success: success,
            error: customError
        });
    },

我在這里很困惑。 這僅僅是“避免IE”問題,還是我想念的東西? 30秒鍾來創建一個小的請求並發送它似乎很荒謬,尤其是在Chrome中速度很快的情況下。 是什么賦予了?

*請注意,我正在使用IE 11進行測試。

由於某種原因,導致取消選中其中的所有復選框的JQuery行導致了該問題:

$('.list-check-buttons.check-button.only-button input:checkbox').prop('checked', false)

我通過逐步調試Chrome調試器來驗證了這一點,並且刪除了該行,大部分情況下解決了該問題。 (事實證明,我們不需要這條線,因為在另一個地方也處理了相同的邏輯,這很奇怪,不會引起性能問題。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM