为什么jQuery不能集成到浏览器中,因此不需要在您的网站上引用它,相反,浏览器只是注意到使用的jQuery,一切正常。
尽管引用jQuery并不困难,但它仍然是一个非常酷的功能。 感谢。
答案 0 :(得分:20)
在外部脚本中使用jQuery的主要优点是你可以在新版本的jQuery中获得一个新功能,并且(假设jQuery支持正确的跨浏览器),你可以自动在所有浏览器中使用该功能你的观众使用。您可以对站点进行编码以使用新的jQuery功能,并知道它可以在所有常用浏览器中使用。
如果浏览器中内置了jQuery功能,那么您将陷入最不常见的分母方法。您可以依赖的功能不会超出您想要兼容的最落后的浏览器或最旧的浏览器。当引入新功能时,您必须等待将近十年的时间才能确保所有不支持该新功能的旧浏览器在确定使用安全之前不再使用。或者,您必须为它构建自己的跨浏览器支持,从而创建一个类似jQuery的新跨浏览器库,并且该圈将重新开始。
使用jQuery,您只需在您的网站中包含最新版本的库,您就可以在所有常见浏览器中自动使用该新功能。
至于效率,你可以通过将jQuery作为外部文件包含它并没有太多损失。如果您使用一种更常见的CDN(如Google)链接到jQuery,那么jQuery可能已经在浏览器缓存中,它从本地硬盘加载而不是每次需要时下载。是的,它可以进一步优化,如果它是内置的,但是你失去了所有那些早先谈到的好处,否定了首先使用它的全部原因。
此外,它并不像内置功能每年都在向前发展。他们是。它被称为标准运动。问题是它的移动速度非常慢。看看CSS3过渡。我们今天在所有流行版本的Firefox,Chrome,Opera和Safari中都提供CSS3过渡支持,但在任何版本的IE中都没有。因此,由于我们距离所有流行的IE7,IE8和IE9的使用还有很长的路要走,我们还有很长的路要走,只能“使用”CSS3并期望浏览器支持它。仍然需要动画库。即使IE10明天出货并且自动支持所有CSS3过渡,我们仍然需要很长时间才能停止在网络上使用所有旧版本的IE。
答案 1 :(得分:5)
因为不同的浏览器会有不同的不兼容版本。
任何本机实现都保证与真实内容有一些细微差别;最终,我们需要一个跨浏览器 jQuery 包装器,循环将重复。
这也会使更新变得更加复杂。
它还会破坏定义$
函数的其他库(例如,Prototype)。
答案 2 :(得分:1)
首先,JQuery并没有什么特别之处 - 它只是一种更加人性化的JavaScript编码方式。它会处理更多的跨浏览器怪癖等,因此开发人员不必过多考虑它。
话虽如此,JQuery遵循ECMAScript标准,浏览器也是如此。 IE是一个顽固的,因为它使用专有的JScript而不是JavaScript。
浏览器不应该处理该问题。你真的想回到臃肿的浏览器那些占用500 + mb ram并需要10秒才能打开的日子吗?
最后,如果Mozilla和Webkit刚刚开始包含JQuery,它可能会惹恼许多使用Mootools,YUI,Dojo等的有才华的JavaScript开发者。
答案 3 :(得分:1)
所有JavaScript库都应该集成到浏览器中,因此浏览器会为它们使用全局存储(例如Google),这样当一个库更新时,它也会在该存储中心上更新。这将是一种方式,无论浏览器版本如何,库都不会过时。至于美元标记,我认为某些功能应该由浏览器创建..
use_library( 'jquery' ){
// my jquery code
}
use_library( 'prototype' ){
// my prototy[e code
}
然而,由于集成JavaScript库只有在浏览器不会在每个请求上通过互联网加载它时才有效,而只是在库更新上然后只有一次,它需要有一些“酷” “每天检查一次新图书馆的系统,尽可能少地提出要求。
我的2美分。
答案 4 :(得分:0)
好吧,有一个版本有jquery的几个版本,有些插件与新版本不兼容,如果,让我们说firefox,DID实现这个,他们每次有更新时都要下载jquery,不能保证Chrome和其他浏览器会对此进行跟进,例如看起来不喜欢任何新内容的Internet Explorer,因此您仍然需要为不支持它的浏览器引用它。
最终不是从这里开始,即使浏览器开始实现它,我也不会依赖它。
答案 5 :(得分:0)
只是想指出网站管理员Stack Exchange上有类似的问题,你可以在那里找到其他一些好的答案:
答案 6 :(得分:0)
快进到2018年:Web浏览器每月都会更新一次(除了Edge / IE似乎每半年更新一次,这仍然不错)。因此,考虑到jQuery已经非常成熟,人们很少会立即使用最新/最新功能,也没有任何严重的错误。
在高速Internet和缩小的jQuery 3时代以及浏览器缓存和CDN的时代,下载也不是这里的重点。
人们忽视的重点确实是性能提升。使用EVERY ... SINGLE ... PAGE ...解析/加载jQuery并不明智。想象一下,不必在每次页面加载时都对其进行解析的低端移动设备上,它将变得多么容易。jQuery的 语法风格 的本机浏览器代码库实现可以利用JavaScript / ECMAScript是目标-在我的书中,这是不可避免的。一个很好的催化剂是Mozilla / Chromium社区中具有强大力量/影响力+ OOTB思考+勇气的人(la Steve Jobs),以实现这一目标。