我有一個圖像需要根據AJAX調用的結果顯示。我不加載像基金會這樣的jQuery和其他庫,它負責基於設備加載負責任的圖像。JavaScript - 時間問題 - 如何等待請求
AJAX呼叫的響應時間範圍爲800-1000毫秒。如果響應超過1000毫秒,我會顯示一個默認圖像。另外,我應該在發送第一個請求時發送AJAX請求,因此它立即被設置爲標題的第一個子節點。 JSFiddle for Timing issue
<html><head><script>set Timeout of 1000 ms .....xhr.send();</script>
<body>
<div id="id_in_response" style="display:none"><img src="xyz"></div>
<div id="default_on_timeout" style="display:none"><img src="xyz"></div>
....Loads of Elements.....
<footer>
<script src="jquery.js"></script>
<script src="foundation.js"></script>
<script src="custom.js"></script>
</body>
定製JS的說明: 自定義JS將執行基業庫JS加載響應圖像。
問題是XHR應該如何與custom.js函數進行通信,以確定是否需要處理超時或響應。我無法使用jQuery Promise,因爲在下載HTML之後,jQuery將加載。我無法使用Native Promises。 可能是在XHR響應進入時,但custom.js仍未加載或解析。我也不能認爲,共振時間總是在800-1000毫秒的範圍內。它甚至可能降到300毫秒或更少。
Custome JS代碼:
$(document).foundation({interchange : named_queries {....}});
// This will parse all the image tags , Run media Query and attach an
appropriate source to the image
最終解決方案:enter link description here
'我不能使用Promise,因爲jQuery將在HTML之後加載,這沒有任何意義...... Promise與jQuery無關 –
我應該使用setInterval - wouldnt阻止頁面嗎? – user1428716
@JaromandaX:或許他/她在談論jQuery的'$ .Deferred'而不是原生承諾。 –