用require.js实现异步加载jQuery库

文章开始之前先说博主前端时间遇到的一个尴尬的例子,手里有个网站,所有JS效果都是用jQuery写的,由于本人又是个Seoer加强迫症患者,所以对网站的加载速度要求比较高。之前一直没有注意网站的加载速度一个是自己网速还算快,另一个是可能技术水平还不够,没有关注到这里。偶然的机会,我用Google的Page Speed测试了一下网站,发现评分比较低,主要原因都是JS和图片的问题。图片优化我们这里先不说,主要讲讲怎们加载JS。网站加载速度慢,主要原因是我网站的head有个jQuery库需要加载,当这个jQuery没有下载并执行完的时候,页面下面的内容将会停止渲染。那么我首先想到了利用浏览器的标签进行异步加载,在script标签里头使用defer和async=”true”来异步加载jquery,这时候发现jQuery是异步加载了,但是又出现了另外一个问题,就是我下面有依赖jQuery写的脚本,当jQuery异步加载,这些被执行了,就是提交找不到”$”,那么我又想到了把这些jQuery写的脚本也进行异步加载,但是仔细一想,这样也不行,因为虽然都是异步加载,但是到底谁先加载上,这个是不可控的。由于水平有限,再加又亟待解决这个问题,所以我最终的办法就是把jQuery库和脚本都写到网页尾部,这样虽然有点挫,但也不失为黔驴技穷的一种解决方案。
…阅读更多>>