繁体   English   中英

使用document.write时脚本执行的顺序

[英]Order of script execution when using document.write

我需要运行一个名为Fastclick的库,以处理手机上300毫秒的点击延迟。 同时,如果我不在手机上运行,​​则无需运行它。 所以我想做这样的事情:

<head>
        <script>
        var UserAgent = navigator.userAgent;
        if (screen.width < 851 || UserAgent.indexOf('iPad') !== -1 || UserAgent.indexOf('iPhone') || UserAgent.indexOf('Android')) {
        document.write('<script src=\"/ExternalFiles/Fastclick.js\"></script>');
        }
        </script>

        //second script
        <script>
        if (FastClick) {...}
        </script>
</head>

如您所见,第二个脚本检查是否已加载FastClick 在我的本地计算机上,这可行。 但是,我想知道它是否仅由于文件是从文件系统中立即加载(即没有延迟)而起作用的,或者实际上是document.write语句触发了加载并且脚本执行一直保持到该脚本被执行已加载。 我正在寻找后一种行为:通过document.write加载的脚本会暂停JavaScript解析直到加载吗?

为什么不总是包含文件并仅在需要时才调用函数? 然后,您不必考虑您的方式涉及的任何可能性:

<head>
        <script src="/ExternalFiles/Fastclick.js"></script>
        <script>
        var UserAgent = navigator.userAgent;
        if (screen.width < 851 || UserAgent.indexOf('iPad') !== -1 || UserAgent.indexOf('iPhone') || UserAgent.indexOf('Android')) {
                FastClick(...)
        }
        </script>
</head>

非移动浏览器一次加载文件后,它就位于缓存中,并且不会减慢页面加载速度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM