2016-10-28 10 views
0

保留中のキャンセル方法scriptタグリクエスト?保留中のスクリプトタグリクエストをキャンセルするにはどうすればよいですか?

他のサーバーからコンテンツを読み込むタグスクリプトがあります。何らかの理由でサーバーが応答しないので、このpendingスクリプトをタイムアウト2秒でキャンセルします。 たとえば、imgタグでは、src属性を空の値に設定することができ、リクエストはキャンセルされます。 スクリプトタグの場合、これは機能しません。 CORSの制限により、スクリプトコンテンツをajaxで読み込めません。

+0

私はあなたがこの経由を制御することができますかわかりませんスクリプトタグだけ。解決策は、プロキシを介してリソースをロードすることである。 [PHP cURL](http://php.net/manual/en/curl.examples-basic.php)。タイムアウトの最大値を設定することができます。 – Utkanos

+0

重複:http://stackoverflow.com/questions/2100784/is-it-possible-to-stop-a-dynamically-inserted-script-tag、http://stackoverflow.com/questions/1247611/javascript-cancelling -a-dynamic-script-tag – eithed

答えて

0

scriptタグは、デフォルトで同期してロードされて実行されるため、キャンセルできません。あなたができることは、スクリプトローダーを使ってスクリプトをロードすることです。

代わりにあなたが(ページがそれを待たないように、しかし、スクリプトをキャンセルしていない、それを作る)このような何かを行うことができます。

<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> 
関連する問題