在javascript代码段周围添加超时

在javascript代码段周围添加超时,javascript,Javascript,我经常遇到第三方跟踪的问题。 因为他们会不时减慢页面速度,所以我正在寻找解决方案 我的想法是在片段本身周围有一个超时。避免延长页面加载时间。如果答案或编译需要很长时间,可以取消整个块 这是第三方实施的一个示例: var _spef=_spef | |[]; _spef.push([“enableLinkTracking”]); _spef.push([“trackPageView”]); (功能(){ var u=“//trck.spoteffects.net/analytics/”; _pu

我经常遇到第三方跟踪的问题。 因为他们会不时减慢页面速度,所以我正在寻找解决方案

我的想法是在片段本身周围有一个超时。避免延长页面加载时间。如果答案或编译需要很长时间,可以取消整个块

这是第三方实施的一个示例:


var _spef=_spef | |[];
_spef.push([“enableLinkTracking”]);
_spef.push([“trackPageView”]);
(功能(){
var u=“//trck.spoteffects.net/analytics/”;
_push(['settrackerrl',u+'piwik.php']);
_速度推送(['setSiteId','XXXXXXX']);
var d=document,g=d.createElement(“脚本”),s=d.getElementsByTagName(“脚本”)[0];
g、 type=“text/javascript”;
g、 延迟=真;
g、 异步=真;
g、 src=u+“spef.min.js”;
s、 parentNode.insertBefore(g,s);
})();

但我不确定我能在这样一个片段后面放些什么。也许你可以帮我:)

你可以把这个放在周围,但它只会将缓慢加载延迟一秒钟,而且不确定spoteffects规则是否允许:

<script type="text/javascript">
    function spef() {
        //put 3rd party code here (what is between script tags)
    }

    setTimeout(spef, 1000);
</script>

函数spef(){
//在此处放置第三方代码(脚本标记之间的内容)
}
设置超时(spef,1000);

将该代码放在外部JS文件中,并包含在您的页面中,在
标记上带有属性
defer
,这样该脚本将在页面加载完成后执行。这将不起作用。修复潜在问题,即缓慢的“跟踪代码”。不管这意味着什么,试图让它“暂停”都将是浪费时间。@UsmanWali这将是零区别的。代码仍然在主线程上执行,js文件的加载只是不同的。还是不是asyncJS没有任何方法中断同步代码,好吧。@Barmar是对的。如果代码“使其变慢”是因为它正在阻塞,则无法解除阻塞。设置一个超时只会使它发生得晚一点,它仍然会阻塞,并且仍然会“减慢页面速度”。Javascript(大部分)是单线程的超时只是意味着处理过程不同,它不在不同的线程上,它在同一个线程上。这仍然会“减慢页面速度”。缓慢将在1秒钟后发生