我在我的网页上运行了Google Pagespeed Insights,并建议
消除上层内容中的渲染阻止JavaScript和CSS
在我的页面中包含的几个脚本中,该工具挑出了jQuery,下划线和其他一些库。
现在,我知道在我的脚本代码中添加关键字defer
或async
会导致文件在页面处理过程中并行下载。
我阅读这篇文章是为了更深入的理解: https://www.sitepoint.com/non-blocking-async-defer/
我了解到,只要我们确定延迟的脚本不包含document.write()
之类的东西(可以修改页面本身),就可以使用{{1} } / defer
。我检查了jquery源代码,确实没有出现async
。
但是,我担心如果延迟这些文件,依赖于jquery或其他库的其他脚本可能会受到影响。
因此,我的问题:
感谢。
答案 0 :(得分:3)
推迟/异步我的库文件以提高性能是个好主意
是的,正确完成后。
如果是,我应该更喜欢哪一个?推迟还是异步?
这完全取决于脚本的功能,对所需DOM的访问权限以及它具有的其他脚本依赖性。
如果我这样做,我是否需要在其他脚本中进行任何更改?
可能,这又取决于上述警告。
话虽如此,我个人发现async / defer会导致比实际解决的问题更多的问题。
使用良好的捆绑/缩小系统来加入和压缩所有JS文件是一种更快捷,更简单,更通用的解决方案。