2016-10-28 35 views
0

如何取消掛起script標籤請求?如何取消待處理的腳本標記請求?

我有標記腳本,誰從另一個服務器加載內容。由於某些原因服務器不響應,所以我想通過超時2秒取消這個pending腳本。 例如img標籤我可以將src屬性設置爲空值,並且請求將被取消。 對於腳本標記,這不起作用。 由於CORS限制,我無法通過ajax加載腳本內容。

+0

我不知道你能控制這個通過一個腳本標籤。解決方案是通過代理來加載資源,例如, [PHP cURL](http://php.net/manual/en/curl.examples-basic.php),它允許你設置超時最大值。 – Utkanos

+0

Duplicate:http://stackoverflow.com/questions/2100784/is-it-possible-to-stop-a-dynamically-inserted-script-tag,http://stackoverflow.com/questions/1247611/javascript-cancelling -a動態腳本標籤 – eithed

回答

0

腳本標記無法取消,因爲它們默認是同步加載和執行的。你可以做的是使用一個腳本加載器來加載腳本。

相反,你可以做這樣的事情(不取消的劇本雖然,只是可以讓頁面不等待它):

<script> 
    function lazyLoad(s) { 
     var d = window.document.body; 
     var e = d.createElement("script"); 

     e.async = true; 
     e.src = s; 
     b.appendChild(e); 
    } 

    window.onload = lazyLoad('url to script'); 
</script> 
相關問題