通常,外部文件javascripts会阻塞window的load和DOMContentLoaded事件,例如,如果我们有:
<script src="http://so.me/file.js"></script>当http://so.me/file.js下载并执行时,DOM呈现器会暂停工作。
现在,让我们假设代替上面的,我们有:
<script type="not-js" src="http://so.me/file.js"></script>我知道它会下载但不会执行资源,但是当它下载时,页面渲染器会像上面那样停止吗?
发布于 2012-11-20 18:27:36
Ryan Fioravanti提供了一个名为“构建高性能移动Web应用程序”的talk on Google I/O 2012,他使用这种技术下载脚本,但阻止脚本执行。然后,他将通过将脚本附加到DOM来执行这些脚本。
请看他解释的部分here。
他解释说,页面呈现时间变得明显更快,这是因为JavaScript没有执行并阻止了页面呈现过程。
页面呈现器是否会像上面那样停止
我的答案是否定的。也许对浏览器内部有更详细了解的人可以给你一个明确的答案。
发布于 2012-11-20 12:40:41
你可能会试一试,但我猜它会的。你可以用Google Analytics和Facebook Connect编写对DOM的异步脚本引用的方式来解决这个问题。
例如:
<!-- Google Analytics: change UA-XXXXX-X to be your site's ID. -->
<script>
var _gaq=[['_setAccount','UA-XXXXX-X'],['_trackPageview']];
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
s.parentNode.insertBefore(g,s)}(document,'script'));
</script>如果你担心你的脚本引用阻塞,你可以使用同样的方法。
发布于 2012-11-20 13:53:12
您是否在寻找:<script defer="defer"></script>,以便脚本不会暂停加载网站的其余部分?
https://stackoverflow.com/questions/13466631
复制相似问题