いくつかの問題:(別名ajax)でタイムアウトしきい値を使用できますXMLHttpRequest
が、それがオンになっているため、同一生成元ポリシーの制限otherserver.com
のために使用できませんXMLHttpRequest
(すべてのAグレードブラウザーをサポートします)。
スクリプトが任意の種類のグローバル名(変数名、関数名など)を導入している場合は、次のことsetTimeout
を確認し続けることができます。
var TIMELIMIT = 5; // seconds until timeout
var start = new Date;
setTimeout(function() {
// check for something introduced by your external script.
// A variable, namespace or function name here is adequate:
var scriptIncluded = 'otherServerVariable' in window;
if(!scriptIncluded) {
if ((new Date - start) / 1000 >= TIMELIMIT) {
// timed out
alert("Please try again")
}
else {
// keep waiting...
setTimeout(arguments.callee, 100)
}
}
}, 100)
私が見ているように、問題はスクリプトのリクエストをキャンセルできないことです。私が間違っている場合は誰かが私を訂正してください。ただし<script>
、DOMからを削除しても、リソースに対するブラウザの要求はアクティブなままになります。そのため、スクリプトの読み込みにx秒以上かかっていることは検出できますが、リクエストをキャンセルすることはできません。
運が悪いかもしれないと思います。