为什么 Web 浏览器没有内置 jQuery?

IT技术 javascript jquery browser
2021-03-01 06:47:44

这对我来说似乎是个好主意。或向 Javascript 本身添加附加功能?

6个回答

因为它只是众多图书馆之一。它可能很受欢迎,但它远不是唯一的选择。而且它还会导致它在特定版本上冻结并使改进速度变慢。

此外,无论如何都没有什么优势。它相当小,您可以将它设置为可被浏览器无限缓存,因此无论如何它只会下载一次 - 如果您有一个新版本,它将有一个新的文件名,因此使其永不过期没有坏处。

除此之外,如果使用像谷歌这样的“全局”CDN 来提供 jQuery 库,那么 jQuery 很可能已经存在于浏览器的缓存中(因为其他人都在使用相同的 CDN)所以几乎没有完全受益。
2021-04-28 06:47:44
是的,好点子。我忘记了
2021-05-11 06:47:44

我认为这个问题应该是一个更大的讨论,但这些答案都是假的。这当然也是2年后。

  1. “这只是众多图书馆中的一个”——然后包括前 11 名
  2. “无法就通用标准达成一致” - 在这一点上,让 jQuery 成为它自己的标准。
  3. “比浏览器更新更频繁”或“使改进更慢” - 所以浏览器在下一次浏览器更新之前不会有 jQuery-1.9.x,只是不要把它放在你的项目中。
  4. “无论如何都要缓存”——当然,这仍然是一个不必发生的传输,而且有很多人没有在他们的新设备上进行过很多冲浪,但你仍然希望你的网站快速访问等等.

问题是它是完全可行的,并且对互联网负载会更好;多少值得商榷。我真的可以看到 chrome 至少用本地副本替换到他们的 CDN 的任何网络传输,但我确信这存在一些法律、安全或网络中立性问题。就像我确定主要原因与此类问题有关,而不是这些显然没有经过深思熟虑的蹩脚技术借口。

如果开发人员可以依赖于像 dojo 这样的完整工具库的速度和可用性,而不必为了减轻重量而挑选和选择,那么这也可以使其他库受益。而且由于大多数库都采用了 AMD 或 requireJS 方法来打包他们的项目,我相信有一个很好的论据,让浏览器至少能够了解它的依赖项。

我真的可以看到 [浏览器] 至少用本地副本替换到 [某个 URL] 的任何网络传输” - 他们已经这样做了。这称为 HTTP 缓存。
2021-04-22 06:47:44
所以浏览器在下一次浏览器更新之前不会有 jQuery-1.9.x,只是不要把它放在你的项目中。更好的是:浏览器每天/每小时/等刷新其库。无需更新整个浏览器。
2021-04-27 06:47:44

jQuery 的存在只是因为他们(浏览器制造商)无法就通用标准达成一致。

@George 是的,我仍然没有提到他们为什么不同意。可悲的是,使 JS 发展如此之快的相同机制也导致它确实很难普遍使用,以至于它现在需要框架。CSS也发生了同样的事情......
2021-04-22 06:47:44
我说这更多是关于标准的不完整实施和技术的出现,这些技术最初不是任何标准的一部分,或者根本不是任何标准的一部分。此外,还有比标准提供的方法更方便的方法,例如围绕 getElementById 的包装器。
2021-05-13 06:47:44

您可以将 jQuery 视为一个 JavaScript 插件。并且浏览器不附带插件,否则插件的目的将无关紧要。

插件比浏览器更新得更频繁——一周之内,jQuery 的浏览器版本就会过时 :)