javascript - 关于 jQuery 的 getScript() 的问题

标签 javascript jquery external getscript

$.getScript("somescript.js", function() {
    alert('Load Complete');
});
  1. 一旦加载,它是否被缓存或如果被多次引用则再次加载?
  2. 如果事件取决于正在加载的文件,如果文件加载时间较长或未加载,事件是否会延迟失败/超时?
  3. 如果文件由于某种原因无法加载,我该如何检查并采取措施?

预先感谢您的帮助。

最佳答案

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/

相关文章:

javascript - Canvas 和 Container SigmaJS 之间的大小不同

javascript - 在 jQuery 中添加和删除类的三种方式切换

javascript - 是否可以从外部 JavaScript 内部更改全局变量?

javascript - 从 RequireJS 中的 CommonJS 样式模块导出构造函数

javascript - 按表单名称显示输入字段 - Vuejs

javascript - jQuery 在隐藏时重置表单输入的值

javascript - 删除不需要的标签(如果位于文本之前)

android - 如何在Android中访问外部存储卡

从外部切换后,Eclipse Embedded Maven 安装消失

javascript - 如何使用 javascript 将必填字段设置为 false