我通过Script标签src调用服务,如下所示:
在运行时制作js脚本标记并且服务响应具有回调函数。所以我只需要设定一个时间,而服务不会在10秒后回复。
代码如下:
function abc(URL){
var NewScript = d.createElement("script");
NewScript.type = "text/javascript";
NewScript.src = url + '&_' + Math.random();
d.getElementsByTagName('head')[0].appendChild(NewScript);
}
abc('www.example.com?callback=testcallback');
如果服务花费太多时间(比方说30秒),我想中止服务电话。请注意我将服务作为ajax从动态添加的脚本标记调用,服务URL作为脚本src。
谢谢,
答案 0 :(得分:1)
类似的东西:
var returned = false;
function checkTimeout(script) {
returned = false;
setTimeout(function() {
if (returned == false) {
// Script NOT loaded
script.parentNode.removeChild(script);
} else {
// Script loaded
}
}, 10000);
}
function abs(URL) {
var NewScript = d.createElement("script");
NewScript.type = "text/javascript";
NewScript.src = url + '&_' + Math.random();
checkTimeout(NewScript);
d.getElementsByTagName('head')[0].appendChild(NewScript);
}
abs('someurl');
然后在你正在加载的脚本中:
returned = true;
// Rest of other script
现在请注意,这只是一个普遍的概念,我还没有尝试过。此外,将所有这些封装到一个"对象"使它更容易。