[英]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.