Javascript 使用document.write时脚本的执行顺序
我需要运行一个名为Fastclick的库来处理手机上300毫秒的点击延迟。同时,如果我不使用手机,我也不需要运行它。所以我想做这样的事情:Javascript 使用document.write时脚本的执行顺序,javascript,fastclick.js,Javascript,Fastclick.js,我需要运行一个名为Fastclick的库来处理手机上300毫秒的点击延迟。同时,如果我不使用手机,我也不需要运行它。所以我想做这样的事情: <head> <script> var UserAgent = navigator.userAgent; if (screen.width < 851 || UserAgent.indexOf('iPad') !== -1 || UserAgent.indexOf('iPhone'
<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>
var UserAgent=navigator.UserAgent;
如果(screen.width<851 | | UserAgent.indexOf('iPad')!=-1 | | | UserAgent.indexOf('iPhone')| | UserAgent.indexOf('Android')){
文件。写(“”);
}
//第二稿
如果(快速单击){…}
如您所见,第二个脚本检查是否加载了
FastClick
。在我本地的机器上,这是可行的。但是,我想知道它是否工作仅仅是因为文件几乎是在瞬间从文件系统加载的(即没有延迟),或者事实上,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>
var UserAgent=navigator.UserAgent;
如果(screen.width<851 | | UserAgent.indexOf('iPad')!=-1 | | | UserAgent.indexOf('iPhone')| | UserAgent.indexOf('Android')){
快速点击(…)
}
当非移动浏览器加载文件一次时,它位于缓存中,不会减慢页面加载速度