您是否应该“推迟/异步”包含jQuery,下划线等的脚本标记?

时间:2017-10-13 10:37:45

标签: javascript jquery performance

我在我的网页上运行了Google Pagespeed Insights,并建议

  

消除上层内容中的渲染阻止JavaScript和CSS

在我的页面中包含的几个脚本中,该工具挑出了jQuery,下划线和其他一些库。

现在,我知道在我的脚本代码中添加关键字deferasync会导致文件在页面处理过程中并行下载。

我阅读这篇文章是为了更深入的理解: https://www.sitepoint.com/non-blocking-async-defer/

我了解到,只要我们确定延迟的脚本不包含document.write()之类的东西(可以修改页面本身),就可以使用{{1} } / defer。我检查了jquery源代码,确实没有出现async

但是,我担心如果延迟这些文件,依赖于jquery或其他库的其他脚本可能会受到影响。

因此,我的问题:

  • 推迟/异步我的库文件以提高性能是一个好主意
  • 如果是,我应该更喜欢哪一个?推迟或异步?
  • 如果我这样做,我是否需要对其他脚本进行任何更改?

感谢。

1 个答案:

答案 0 :(得分:3)

  

推迟/异步我的库文件以提高性能是个好主意

是的,正确完成后。

  

如果是,我应该更喜欢哪一个?推迟还是异步?

这完全取决于脚本的功能,对所需DOM的访问权限以及它具有的其他脚本依赖性。

  

如果我这样做,我是否需要在其他脚本中进行任何更改?

可能,这又取决于上述警告。

话虽如此,我个人发现async / defer会导致比实际解决的问题更多的问题。

使用良好的捆绑/缩小系统来加入和压缩所有JS文件是一种更快捷,更简单,更通用的解决方案。