【问题标题】:Why web browsers don't have jQuery built in? [duplicate]为什么网络浏览器没有内置 jQuery? [复制]
【发布时间】:2011-03-17 18:49:32
【问题描述】:

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

【问题讨论】:

    标签: javascript jquery browser


    【解决方案1】:

    将 jQuery [type] 功能添加到浏览器的内置 JS 实现(或使其成为 1st-class 插件)将解决一个基本问题:

    正如许多人所说,jQuery 是一个 JS 库 - 意思是,如果一分钱没掉 - 它是 用 JS 编写的 并且必须解释在运行时。

    嵌入它意味着它可以用操作系统的本机代码编写,使其性能更高。

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

      • "我真的可以看到 [浏览器] 至少用本地副本替换任何到 [某个 URL] 的网络传输" - 他们已经这样做了。这称为 HTTP 缓存。
      • 所以浏览器在下一次浏览器更新之前不会有 jQuery-1.9.x,只是不要把它放在你的项目中。更好的是:浏览器会刷新它的图书馆每天/每小时/等。无需更新整个浏览器。
      【解决方案3】:

      插件比浏览器更频繁地更新 - 一周内浏览器版本的 jQuery 就会过时:)

      【讨论】:

        【解决方案4】:

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

        而且无论如何也没有什么优势。它很小,您可以将其设置为浏览器无法定义的缓存,因此无论如何它只会下载一次 - 如果您有新版本,它将有一个新的文件名,所以让它永不过期没有什么坏处。

        【讨论】:

        • 除此之外,如果使用像谷歌这样的“全球”CDN 来交付 jQuery 库,那么 jQuery 很可能已经存在于浏览器的缓存中(因为其他人都在使用同一个 CDN),所以几乎没有任何好处。
        • 是的,好点。我忘记了
        【解决方案5】:

        可能是因为浏览器很难更新。 JQuery 的一些特性最终可能会进入 javascript,我相信其中一些是最近才出现的。 (不管怎样,这个想法还是有的)需要数年时间才能将功能添加到 javascript 之类的东西中,而 JQuery 库只能发布一个新版本。

        实际上有一个 firebug 或 firefox 插件可以让你将 JQuery 注入到页面中。但那只是一个开发工具

        【讨论】:

        • 你有那个插件的名字吗?优步的用处!
        • @Psytronic:我想他指的是FireQuery
        • 非常感谢,让我不用导航到我知道使用它的网站。
        【解决方案6】:

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

        【讨论】:

          【解决方案7】:

          还有版本控制问题。 jQuery 的某些站点和扩展需要特定版本的 jQuery。现在由应用程序决定使用哪个版本。

          【讨论】:

          • 但是您可以设置一个类似于 HTML doctypes 的声明系统,并在浏览器安装中包含各种版本库 - 唯一的问题是 jQuery 版本和浏览器支持之间的滞后
          • @HorusKol - 我也不认为滞后是一个问题。浏览器的实际功能与库无关,因此只要库的新版本发布,它就可以自动更新。浏览器供应商无需为此推送软件更新。
          【解决方案8】:

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

          【讨论】:

          • 我说这更多的是关于标准的不完整实施以及最初或根本不是任何标准的一部分的技术的出现。此外,有些方法比标准提供的方法更方便,例如getElementById 的包装器。
          • @George 是的,我仍然没有提到他们为什么不能同意。可悲的是,让 JS 发展得如此之快的相同机制也导致它确实很难普遍使用,以至于它现在需要框架。 CSS 也是如此……
          猜你喜欢
          • 1970-01-01
          • 2013-03-19
          • 2018-03-29
          • 2011-04-09
          • 1970-01-01
          • 1970-01-01
          • 2023-04-07
          • 2010-12-02
          • 2015-07-23
          相关资源
          最近更新 更多