在阅读了有关JQuery和CDN的另一个问题之后,诸如JQuery之类的工具随浏览器“问世”是否可行,从而减少/消除了从CDN或您自己的主机服务器进行首次下载的需要。
JQuery文件特别小,因此作为浏览器安装的一部分,您可以轻松拥有多个(全部?)不同的版本。现在足够公平了,这将增加安装空间,并缩短浏览器本身的下载时间。
然后,站点可以先检查“本地”,然后再检查CDN(然后缓存),然后最终默认从网站服务器本身下载。
如果可行,是否已经完成,如果没有,为什么还没有完成?
在阅读了有关JQuery和CDN的另一个问题之后,诸如JQuery之类的工具随浏览器“问世”是否可行,从而减少/消除了从CDN或您自己的主机服务器进行首次下载的需要。
JQuery文件特别小,因此作为浏览器安装的一部分,您可以轻松拥有多个(全部?)不同的版本。现在足够公平了,这将增加安装空间,并缩短浏览器本身的下载时间。
然后,站点可以先检查“本地”,然后再检查CDN(然后缓存),然后最终默认从网站服务器本身下载。
如果可行,是否已经完成,如果没有,为什么还没有完成?
Answers:
没有技术原因不能做到。但是,这是不必要的,并且违反了网络的基本哲学。这是没有必要的,因为您可以用一个过期的Expire标头实现几乎相同的功能。这与Web的哲学背道而驰,因为它导致存在一个自上而下的,集中的授权机构,在该机构中,应该/不应该将库与浏览器捆绑在一起。
编辑:JS库主要是为了使处理DOM更容易。我认为将第三方库与浏览器绑定不是使DOM API更令人愉悦的正确方法。
实际上,您所描述的内容已经存在多年了。这就是所谓的缓存。它不仅适用于JQuery,而且适用于您的浏览器可能下载的所有内容。
然后,站点可以首先在CDN之前检查“本地”,然后最终默认为从网站服务器本身下载。
这正是每个浏览器的功能。它首先检查本地缓存,然后根据需要从CDN下载一个。使用正确的缓存配置,几个月甚至都不会往返服务器(以检查较新的版本)。
将JQuery包含在浏览器设置中将是:
给浏览器应用程序和设置增加不必要的复杂性,
添加不必要的复杂性来更新流程,
增加更新次数以保持JQuery的最新版本,即使对于不需要它的人来说,
增添混乱:为什么使用JQuery而不使用Prototype或其他框架,图像,CSS文件等?
等等
在功能,性能等方面没有好处的情况下,增加软件产品的复杂性是一个非常糟糕的主意。
别忘了jQuery是一个js库,它似乎已经成为事实上的一个库,并被视为万灵药(从某种意义上来说,它已成为值得纪念的东西),但是它只是一个js库。
脚本标准化(EMCAScript)的一切都是包含在已经浏览器,什么都加入到其他浏览器将成为非标和你最终与非标准浏览器的跨浏览器的问题(如IE的事件模型),这会影响到首先创建jQuery之类的库的部分原因。
简短的答案:可以将它们包括在内,但不应包括在内。
浏览器缓存提供的功能与您所讨论的非常相似。应该是将jQuery或任何其他JS库下载一次,然后根据进一步的请求从缓存中检索出来的情况。
虽然jQuery可能是最普及的JavaScript库,但它并不是唯一的库,在我看来,将其安装为浏览器的安装组件对JS生态系统不利。竞争是健康的,通常会导致创新,因此,给jQuery一个特殊的位置,我们的开发人员和软件用户将无法得到良好的服务。
一旦考虑了缓存,您获得的好处就非常非常小。jQuery的缩小版只有31K。那不是改变任何事情的理由。
Array.prototype.forEach
,Array.prototype.indexOf
,Object.create
是得到了捆绑成JavaScript引擎本身的代码示例。