当页面加载速度是优先级时,使用最小的轻量级javascript库(托管在CDN上)是否更好,或者使用类似jQuery的东西更好,托管在Google的CDN上的浏览器很可能已经加载?
编辑:我的问题真正归结为使用在Google的CDN上托管的jQuery的跨站点缓存效果是否超过了使用超轻型库的好处,也是在CDN上。
答案 0 :(得分:2)
你可以在选择要在页面上使用的插件时考虑这个因素,因为它们是由不同的用户编写的,有些人可能会明智地考虑这个因素,或者有些人可能只是为了这个因素。
是的,如果您使用像谷歌这样的CDN用于jQuery,那么很可能该浏览器必须缓存该库,而Google也有基于位置的服务器数量,因此您不必担心它。
答案 1 :(得分:1)
延迟时间
CDN在各种不同的物理位置的服务器之间分发静态内容。当用户的浏览器解析这些文件的URL时,它们的下载将自动定位到网络中最近的可用服务器。
对于Google的AJAX Libraries CDN,这意味着任何不在您服务器附近的用户都可以比强制他们从您任意定位的服务器下载jQuery更快地下载jQuery。 有一些可与谷歌相媲美的CDN服务,但它很难超过免费的价格!仅这一好处就可以决定问题,但还有更多。
增加并行度
为避免不必要地重载服务器,浏览器限制了可以同时进行的连接数。根据哪个浏览器,此限制可能低至每个主机名两个连接。 使用Google AJAX Libraries CDN可以消除对您网站的一个请求,允许您并行下载更多本地内容。对于使用六个并发连接浏览器的用户来说,这并没有产生巨大的差异,但对于那些仍然只运行两个浏览器的用户来说,差别很明显。
更好的缓存
使用Google AJAX Libraries CDN的最大好处是您的用户可能根本不需要下载jQuery。 无论您的网站如何优化,如果您在本地托管jQuery,那么您的用户必须至少下载一次。您的每个用户可能已经在浏览器的缓存中拥有数十个相同的jQuery副本,但这些jQuery副本在访问您的网站时会被忽略。
但是,当浏览器看到对CDN托管的jQuery副本的引用时,它会理解所有这些引用都引用完全相同的文件。由于所有这些CDN引用都指向完全相同的URL,因此浏览器可以信任这些文件真正相同,并且如果文件已经缓存,则不会浪费时间重新请求文件。因此,浏览器能够使用在磁盘上缓存的单个副本,无论CDN引用出现在哪个站点上。
这会产生强大的“跨站点缓存”效果,使用CDN的所有站点都可以从中受益。由于Google的CDN为文件提供了试图将文件缓存长达一年的标题,因此这种效果确实具有惊人的潜力。由于互联网上已有数千个交易最多的网站已经使用谷歌CDN来提供jQuery服务,很可能很多用户在使用CDN访问网站时都不会对jQuery发出单一的HTTP请求。 即使有人使用相同的Google托管版本的jQuery访问了数百个网站,他们也只需要下载一次!
答案 2 :(得分:0)
最好使用最适合您的应用程序和开发团队需求的库。超轻量级库可能会为您节省几百毫秒的加载时间,但如果您的团队在使用jQuery / MooTools / Dojo等方面拥有更多经验,则最终可能会在开发时间内花费您的成本。
如果通过仅使用二流工具来改善新功能实施和错误修复,以改善加载时间,那么您的用户最终将会受到影响。