2011-11-02 50 views
2

我在通過jQuery.ajax()向Web服務發送異步請求時顯示動畫gif。 gif最初是隱藏的(display: none),並在發送請求之前通過.show()顯示。加載動畫在IE7中有時會凍結,有時在IE8中進行異步Ajax調用

它在Chrome,FF和IE9中按預期工作並且看起來很好,但是在IE8中,它的動畫不時在該過程中凍結,並且在IE7中只顯示gif,但根本不會生成動畫。我已經搜索了多個關於這個問題的線索,但他們相當過時(我知道IE7和IE8,但我們仍然必須完全支持這些瀏覽器),並且這些協議似乎是:不可能 - IE7只有一個線程來運行JS和GIF動畫。

我希望,有足夠的時間過去了,他們存在解決這個問題的解決方法。我對JS和Web開發很陌生,所以很有可能,我沒有足夠的經驗來找到一個簡單的解決方案,而其他人都知道。 :)

由於提前, 鮑里斯

+0

您是否按下頁面上的Esc鍵來執行某些操作(如關閉對話框)?不確定其他瀏覽器,但如果按Esc鍵,IE會停止GIF動畫。 –

回答

2

,你可以嘗試做Ajax調用中的表演,因此回調:

$(".gif_element").show("normal", function() { 
    $.ajax({}) 
}); 
當然

這是一個workarround

+0

這實際上確實似乎有伎倆。我有點慚愧,沒有想到演出回調。我已經在每個可能的地方嘗試過'setTimeout',但沒有任何工作。謝謝!現在我只需要找到凍結的解決方案,而html通過jQuery注入。 :) – Boris

1

嘗試使用jquery刪除display:none屬性。

$("#id or .class").css("display", "block"); 

$("#id or .class").removeAttr("display"); 

同樣的問題也發生了,我和工作上面的一個。 :)

+0

似乎也工作。謝謝!雖然我認爲你的意思是$(「#id或.class」)。css(「display」,「」);'在你的第二個建議中,因爲'display'不是html屬性,而是一個css屬性。 :) – Boris

+0

是的,你是對的..我只是複製粘貼我的上一行,並忘記編輯;) – Rohan

相關問題