gpt4 book ai didi

javascript - 推迟脚本执行一段时间

转载 作者:行者123 更新时间:2023-11-28 02:27:11 24 4
gpt4 key购买 nike

在 JavaScript 中,是否可以推迟驻留在顶层闭包的自执行函数的执行? (为了让你理解,jQuery 使用了这个。它在全局范围内有一个自执行功能)

我的目标是使整个外部脚本稍后执行,而不推迟其下载,以便它尽快下载并在事件发生后执行(我决定该事件何时发生)。

我也发现了这个:
https://developer.mozilla.org/en-US/docs/DOM/element.onbeforescriptexecute

听起来像是我想要的“第 1 部分”。如果我取消,则脚本不会执行。但是……我以后如何有效地执行它?

注1:我完全无法控制该外部脚本,因此无法更改它。

注2:我和提出此请求的人都不关心 IE 是否因此类问题而变慢(是的,没错!他和我一样反对 IE)

编辑(附加信息):
@SLaks 服务器发送 apache 发送的默认 header (看起来如此)以及一个缓存控制 header ,以便缓存 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);
});
}
});

编辑我从来没有使用过$.getScript()自从我使用RequireJS以来,我自己用于包含脚本,所以我不知道它是否能满足您的需求,但请看一下:http://api.jquery.com/jQuery.getScript/

仅供引用如果你想知道我所说的 CSRF 攻击,Check this out .

关于javascript - 推迟脚本执行一段时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14755739/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com