通过javascript加载缓慢的外部文件时,有什么方法可以优雅地实施超时限制?

通过javascript加载缓慢的外部文件时,有什么方法可以优雅地实施超时限制?,第1张

通过javascript加载缓慢的外部文件时,有什么方法可以优雅地实施超时限制?

几个问题:您可以将超时阈值

XMLHttpRequest
(aka ajax)一起使用,但是由于存在超时阈值,因此由于Same Origin
Policy限制
otherserver.com
您不能使用
XMLHttpRequest
(并支持所有A级浏览器)。

如果脚本引入了任何种类的全局名称(例如,任何变量名称,函数名称等),您都可以尝试对其

setTimeout
进行检查:

var TIMELIMIT = 5; // seconds until timeoutvar 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秒,但是无法 取消 请求。

我认为您可能不走运。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5020391.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存