关于jQuery的getScript()的问题

3zz*_*zzy 4 javascript jquery external getscript

$.getScript("somescript.js", function() {
    alert('Load Complete');
});
Run Code Online (Sandbox Code Playgroud)
  1. 一旦加载,它是否被缓存,或者如果多次引用它又被加载?
  2. 如果某个事件依赖于正在加载的文件,那么如果文件加载时间较长或未加载,事件是否会延迟失败/超时?
  3. 如果文件由于某种原因无法加载,我如何检查并执行某些操作?

在此先感谢您的帮助.

Gle*_*ord 6

1)除非您在$ .ajax()函数中指定它作为选项,否则永远不会缓存通过AJAX对jQuery的脚本请求.从文档:

"缓存,布尔值

默认值:true,false表示dataType'script'和'jsonp'

如果设置为false,它将强制您请求的页面不被浏览器缓存."

2)我想我需要看一些示例代码来掌握这部分问题.

3)如果$ .getScript()失败,则无法执行任何操作.但是,您应该知道$ .getScript()只是$ .ajax()的简写版本,等同于:

$.ajax({
  url: url,
  dataType: 'script',
  success: function(data) {
    //
  }
});
Run Code Online (Sandbox Code Playgroud)

这意味着您可以实现error回调,以便在文件加载失败时做一些聪明的事情,即:

$.ajax({
  url: url,
  dataType: 'script',
  success: function(data) {
    //
  },
  error: function(XMLHttpRequest, textStatus, errorThrown) {
    alert("panic");
  }
});
Run Code Online (Sandbox Code Playgroud)