将脚本执行推迟一段时间
defer script execution for some time
在javascript中,是否可以推迟执行驻留在顶级闭包中的自执行函数?(为了便于理解,jQuery使用了这个。它在全局范围内具有自执行功能)
我在这里的目标是让整个外部脚本在以后的时间执行,而不推迟它的下载,这样它就可以尽快下载并在事件发生后执行(我决定事件发生的时间)。
我还发现:
https://developer.mozilla.org/en-US/docs/DOM/element.onbeforescriptexecute
听起来像是我想要的"第一部分"。如果我取消,脚本将不会执行。但是。。。我以后如何有效地执行它?
注意1:我完全无法控制外部脚本,所以我无法更改它。
注意2:我和要求这样做的人都不在乎IE是否因为这样的事情而缓慢(是的,是的!他和我一样反对IE)
编辑(附加信息):
@SLaks服务器发送apache发送的默认标头(看起来是这样),再加上一个缓存控制标头,命令缓存12小时
从关于域的规则的POV来看,它是跨域的
我不被允许更改有关其他服务器的定义。不过,我可以试着要求
不幸的是,无法使用<script>
标记,因为您无法通过这种方式将外部脚本的文本封装在代码中以延迟它。如果可以,这将为跨站点请求伪造(CSRF)打开一个全新的可能性世界。
但是,您可以通过AJAX请求获取脚本,只要它托管在同一域名上即可。然后你可以推迟它的执行。
$.ajax({
url: '/path/to/myscript.js',
success: function(data) {
// Replace this with whatever you're waiting for to delay it
$.ready(function() {
eval(data);
});
}
});
编辑自从我使用RequireJS包含脚本以来,我自己从未使用过$.getScript()
,所以我不知道它是否有助于满足您的需求,但请看一下:http://api.jquery.com/jQuery.getScript/
仅供参考如果你想知道我在说什么CSRF攻击,看看这个。
- Canvas+svg路径动画,在路径中的特定点暂停一段时间,然后继续
- 收集一段时间内的EMG数据.建议JS
- 在一段时间内切换文本
- 如何停止字幕文本一段时间,然后继续
- HTTP服务器在一段时间后停止(Node.js)
- Hammer.js过了一段时间就停止工作了
- Meteor-在一段时间内解锁模板(按日期)
- 画布在一段时间后开始滞后
- JS-在一段时间后水平移动图像
- AJAX 调用在获得响应并成功执行时会冻结浏览器一段时间
- 表单提交在一段时间循环PHP,jquery
- 一段时间后生成回发
- 一段时间后自动点击提交按钮
- 如何每隔一段时间更改我网站的背景颜色
- 一段时间后调用函数,但只调用一次
- 一段时间后使用Javascript加载网页ASP.net
- 在for循环中另一个音频结束后播放一段时间的音频
- 即使用户正在导航到其他页面,也要在一段时间后打开弹出窗口
- 如何在页面加载一段时间后使用adsense
- 将脚本执行推迟一段时间