$.getScript 第二次工作
$.getScript works second time around?
我想知道这是否是jQuery $.getScript()
的常见问题?我有一个使用此功能的 JS 脚本。
我的JS文件真的很长,我认为发布整个脚本对我来说不是一个好主意,所以我只是好奇这是否是一个常见问题?
我有一个$.ajax
功能,按下按钮后运行
$.ajax({
url: thisURL,
type: "POST",
crossDomain:true,
data: searliziedData
}).done(function(data){
var jsPaths = ["http://www.example.com/js/jquery.jscrollpane.min.js","http://www.example.com/js/jquery.hoverIntent.minified.js","http://www.example.com/js/jquery.mousewheel.js","http://www.example.com/js/image_contents.js"];
$.each(jsPaths, function(i, jsPath) {
$.getScript(jsPath);
});
// do something
});
因此,在我第二次按下按钮之前,脚本不会插入到站点中。我还尝试在$.ajax
之前插入$.getScript
代码,直到第二次按下它才执行。
我从这段代码中没有得到任何错误或任何内容。
我还在 $.each()
函数中放入了一个alert("test")
并执行。
您可能会问我怎么知道我的脚本没有被执行?我使用谷歌浏览器的检查元素,在资源下,我可以看到站点中正在执行的脚本。
每次我在清除缓存后getScript()
无法在第一个页面加载上工作(或者如果它只在第一次加载时有效)时,都是因为我有一些乱七八糟的东西。
我将在这里过于简化:上次遇到这种情况时,我正在检查 <body>
元素是否具有特定的类,但我是在 <body>
标签本身之前调用脚本的。 在第一次加载时,getScript()
不会执行,但在第二次加载时,它会执行,因为文档已缓存。 在这种情况下,问题不是特定于getScript()
,而是缓存的工作方式。
另一个常见问题是脚本依赖关系,以这个为例:
$.getScript('plugin.js');
$.getScript('developers.js');
如果developers.js
依赖于plugin.js
中的插件功能之类的东西,在某些情况下,它很可能developers.js
无法运行,因为它的下载速度比plugin.js
快,因此首先执行。
对此的解决方案如下所示:
$.getScript('plugin.js').done(function(){
$.getScript('developers.js');
});
您说您的JS文件非常大,并询问这是否是一个常见问题。 我会说是的。当您有很多事情要做时,很容易忽略脚本相对于彼此和 HTML 文档的执行顺序。 这是一个问题,你只需要调试以查看是否缺少任何依赖项。
- Javascript Select OnChange没有'不要第二次工作
- 提交按钮只能在onchange调用输入文本后第二次点击时工作
- Jquery - ZeroClipboard只能在第二次点击中工作
- $.getScript 第二次工作
- jQuery on(change);不要第二次工作
- jQuery.on('点击',function()只在第二次点击时工作
- CasperJS评估函数第二次不工作
- delay()不会'第二次工作jquery
- Jquery网格在第二次加载时不工作
- 它在第二次点击时完成工作,为什么
- 日期选择器 getDate 方法在第二次单击时工作并显示上一个选定的日期
- jsPDF 在第一次保存时工作,在第二次保存时不更新
- JavaScript 我的函数在第二次被点击时将无法工作
- 图库在第二次使用后停止工作
- jQuery 在第二次抠像后停止工作
- 开机自检直到第二次才工作
- Angularjs 登录 cookie 第二次工作
- jQuery动画没有'我第二次不工作了
- HTML模态弹出动画不工作第二次
- 禁用锚标记首先点击设备,需要工作第二次点击