为什么WordPress使用过时的jQuery v1.12.4?


25

在检查源代码时,我发现WordPress使用jQuery v1.12.4。为什么WordPress为什么使用这个过时的jQuery版本?


1
答案很简单:WP希望保持与旧版浏览器的向后兼容性。WP有足够的用户仍需要IE8支持,因此尚不能删除它。
辛巴

Answers:


32

WP核心加载了许多使用jQuery的主题和插件。每次更新jQuery时,都有可能会破坏较旧的主题和插件(因为其中许多主题仍在使用,但不再更新)。这就是为什么您还在jquery-migrate.js源代码中看到的原因。它是一个脚本,可捕获插件/主题使用的旧功能,并确保它们仍可在新版jQuery中使用。

迁移到jQuery 3.x系列会导致许多插件/主题中断,因为不可能为所有已弃用的内容提供迁移脚本。这就是为什么和家族已经存在1.x时仍在开发家族的新版本的原因。将有没有新的版本后和,除了(安全性)的修补程序。尽管jQuery 现在还不是过时的,但是它将在不久的将来出现。2.x3.x1.x2.x1.122.21.12

因此,WordPress处于困境。如果不升级到更高的jQuery版本,它将无法跟上新的可能性。但是,如果确实升级,则旧站点将损坏。最可能的结果是WP将等待几年,因此无论如何都会淘汰较旧的主题/插件,然后跳到3.x家庭

澄清度

以上内容可能表明实际上不可能从1.x版本迁移到3.x。这不是真的。只是有点复杂。诀窍是先升级到1.12,使用较旧的迁移脚本调试结果,然后添加可用于的3.0迁移脚本1.12。详细说明在这里

安全更新

开发人员将注意到,由于存在此较旧的jQuery版本,因此Google Dev Tools / Lighthouse报告WordPress网站为脆弱站点-似乎如此。实际上,Lighthouse所做的只是检查该库是否具有Snyk漏洞数据库中提到的漏洞。如果您仔细检查,您会发现1.12.4版本是干净的。鉴于1.12.4的广泛使用,您可以指望可以迅速解决任何严重的漏洞。


4
只是添加了一些额外的信息-jQuery 1.x和2.x都在积极更新,直到今年5月,它们之间的区别只是1.x具有与IE8的兼容性,而2.x则删除了补丁并修复了那些错误的浏览器。3.x是新版本,它通过将各种接口更改为与“官方” HTML5 / JavaScript接口兼容而进一步向前发展(即,以相同的方式进行操作, jQuery具有自己的版本,这些事情成为标准做同样的事情)。
Rycochet '16

23
  • 不算过时
  • 迁移到2.x或3.x尚为时过早,人们仍然使用仅在1.x上受支持的IE8。

2
@LightnessRacesinOrbit同意,但是根据我的经验,这个问题是关于WP开发人员的平均水平的。
MonkeyZeus '16

7
2018年1月更新:尽管它仍然是WordPress附带的默认值,但它已经过时的想法不再是“废话”。XSS漏洞已由1.12.4识别,并且1.x分支不再接收更新。建议的补救措施是升级到jquery 3.xsnyk.io/test/npm/jquery/…–
squarecandy

2
另外,在使用Lighthouse时,Google会告诉您1.12.4版本包含已知的安全漏洞,因此您不应该使用它。
phpheini

4
在这一点上,微软甚至不支持IE8是不负责任的。它使人们使用具有安全问题的过时浏览器。如果有人使用IE8,则需要停止。
David A. French

1
@ DavidA.French我赞成第二项议案。开发人员需要停止容纳拒绝更新的用户。曾经有一段时间,每个人都希望在每个已知的可能的浏览器中都具有完全的兼容性,而这些不良习惯继续存在。也许当Internet停止为他们服务时,这些人将更新为现代浏览器。在这一点上,如果您未使用主流浏览器之一的最新版本(IE和AOL根本不算在内),互联网就不会给您带来麻烦。老实说IE8?您只喜欢不到网络的1%,[在AOL中说]“再见”
KFish

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.