$.getScript("somescript.js", function() {
alert('Load Complete');
});
- 一旦加载,它是否被缓存或如果被多次引用则再次加载?
- 如果事件取决于正在加载的文件,如果文件加载时间较长或未加载,事件是否会延迟失败/超时?
- 如果文件由于某种原因无法加载,我该如何检查并采取措施?
预先感谢您的帮助。
最佳答案
1) 通过 AJAX 对脚本的 jQuery 请求永远不会被缓存,除非您将其指定为 $.ajax() 函数中的一个选项。来自documentation :
“缓存, bool 值”
默认值:true,对于数据类型“script”和“jsonp”为 false
如果设置为 false,它将强制您请求的页面不被浏览器缓存。”
2) 我想我需要查看示例代码来掌握这部分问题。
3) 如果 $.getScript() 失败,您将无能为力。但是,您应该知道 $.getScript() 只是 $.ajax() 的简写版本,等同于:
$.ajax({
url: url,
dataType: 'script',
success: function(data) {
//
}
});
这意味着您可以实现 error
回调,在文件加载失败时做一些聪明的事情,即:
$.ajax({
url: url,
dataType: 'script',
success: function(data) {
//
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("panic");
}
});
关于javascript - 关于 jQuery 的 getScript() 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2711443/