2011-07-27 57 views
2

我試圖寫它顯示一個div,說一個很簡單的功能工作正常「載入中...」,然後讓一個jQuery AJAX( )調用,一旦完成,隱藏加載div。該代碼工作完全在Firefox,但IE 7(也許8/9爲好,只有7測試)和Chrome都有問題:加載DIV,在Firefox

function ajaxwl(url) { 
    $('#loadingDiv').show(); 
    var xmlHttp=$.ajax({type: "GET", 
     url: url, 
     async: false }); 
    $('#loadingDiv').hide(); 
    return xmlHttp; 
} 

我通過與Chrome的調試代碼加強,然後它的工作 - 加載div按預期顯示。但是,如果我在沒有調試器的情況下運行代碼,Chrome(和IE 7)會加載AJAX請求,而不會顯示加載div。也許這與Chrome瀏覽器鎖定瀏覽器這一事實有關,因爲我正在使用非異步請求?

編輯:我結束了在請求轉換爲異步請求(這需要以這種代碼,我繼承做到處轉換,但我一直在拖延......)現在一切按預期工作:

function ajaxwl(url) { 
    $('#loadingDiv').show(); 
    var xmlHttp=$.ajax({type: "GET", 
     url: url 
    }).done(function() { 
     $('#loadingDiv').hide(); 
    }); 
    return xmlHttp; 
} 

感謝您的快速反應!

+1

你也許應該使用異步請求,我不知道這是造成問題的原因,但有JS停止執行,同時執行網絡任務是不好的做法。 –

+0

你說得對。你使我陷入困境,將我的所有請求轉換爲異步。謝謝。 – royaldark

回答

1

加載DIV,因爲你是由於其執行JS掛在瀏覽器同步模式下使用AJAX,你將不會看到時它是可見的,當它被隱藏不可見的IE瀏覽器。在所有其他瀏覽器中,js執行速度非常快,因此您可以看到它。

+0

你應該在ajax調用響應來臨時隱藏加載div。 – ShankarSangoli

0

我在IE中有同樣的問題,前一陣子。檢查問題顯示,由AJAX請求返回的HTML格式錯誤(缺少結束標籤等),IE在這種情況下非常無情。也許你在這裏有同樣的問題。