Пара проблем: вы можете использовать пороги тайм-аута с XMLHttpRequest
(он же ajax), но тогда, поскольку он на 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 секунд, вы не можете отменить запрос.
Думаю, тебе не повезло.