我试着用PageSpeed Insights优化我的网站。这个谷歌工具显示了错误:"Eliminate blocking rendering JavaScript code".我把所有的脚本代码从页面末尾的head移走了。错误已修复,但现在我在控制台中看到错误:
ReferenceError: $ is not defined $(document).ready(function() {错误的原因可能是body部分的几个js代码。我怎样才能消除这个问题呢?我是否必须将代码从页面末尾的正文中移出,或者有其他解决方案?
发布于 2015-11-30 15:55:24
这是一个依赖问题,一些东西(可能)在初始化之前就在使用jQuery。jQuery加载器脚本仍然在标题中,还是在使用$(document).ready()的脚本之上?
有些脚本是异步的,有些则不是。还要记住这一点,因为如果jQuery实例是异步加载的,并且位于脚本之上,而脚本是同步加载的,那么这可能无关紧要。在异步脚本完成加载之前,仍会加载您的脚本。
没有必要将异步脚本放在正文的底部-有时PageSpeed对块呈现脚本的假设是不正确的。您还可以在DOM准备好之后,对想要延迟的脚本标记尝试" defer“HTML属性。
http://caniuse.com/#feat=script-defer
https://stackoverflow.com/questions/33822430
复制相似问题