Vis*_*ish 10 javascript ajax timeout
我使用javascript包含从另一台服务器上的php文件提供的一些内容.但是,这种其他服务有时会变得不稳定,要么需要很长时间才能加载,要么根本不加载.
在失败和停止包含js之前,JS是否有办法尝试获取外部数据x秒.
如果你的意思是
<script src="javascript.php"></script>
Run Code Online (Sandbox Code Playgroud)
那么简短的答案就是这就是为什么JSONP在这些情况下无用的原因.
更长的答案是你可以使用setTimeout并测试你知道应该在javascript中的变量,并在var/function不存在时给出错误.
如果你这样做
<script>
var start = new Date();
var tId;
function testFunction() {
var end = new Date();
if ( (end.getTime()-start.getTime()) > 10000) {
alert('gave up')
}
else if (someFunction) { // someFuntion in the external JS
someFunction()
}
else tId=setTimeout(testFunction,1000)
}
</script>
<script src="javascript.php"></script>
Run Code Online (Sandbox Code Playgroud)
小智 5
<script type="text/javascript">
var jsLoaded = false;
setTimeout("callback()", 2000);
function callback() {
if (!jsLoaded) {
alert("Javascript not loaded after 2 seconds!");
} else {
alert('Loaded');
}
}
</script>
<script type="text/javascript" id="foo" src="url.js" onload="jsLoaded=true"></script>
Run Code Online (Sandbox Code Playgroud)
现在,祝你好运,找到如何停止加载脚本。我尝试<script>从 DOM 中删除该元素,但它仍然尝试加载...
如果您的 .js 托管在同一域上,我建议您使用 AJAX 方法来加载 javascript (请参阅http://codesnippets.joyent.com/posts/show/602)
| 归档时间: |
|
| 查看次数: |
12379 次 |
| 最近记录: |