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

评论

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

#1 楼

WP核心加载了许多使用jQuery的主题和插件。每次更新jQuery时,都有较旧的主题和插件被破坏的风险(因为其中许多主题仍在使用,但不再更新)。这就是为什么您还在源代码中看到jquery-migrate.js的原因。它是一个脚本,可捕获插件/主题使用的旧功能,并确保它们仍可在jQuery的较新版本中使用。不可能为所有不推荐使用的内容提供迁移脚本。这就是为什么3.x系列和1.x系列已经存在而仍在开发新版本的原因。 2.x3.x之后将没有新的1.x2.x版本(安全补丁程序除外)。尽管jQuery 1.12现在还没有过时,但它将在不久的将来。

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

说明

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

安全更新

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

评论


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

– Rycochet
16年11月1日在9:22

#2 楼


这不是过时的

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


评论


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

–MonkeyZeus
16-10-31在18:49



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

– squarecandy
18年1月17日在17:28



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

–phpheini
18年6月26日在9:25

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

– David A. French
18年12月18日在1:50

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

– KFish
19年8月29日在4:19

#3 楼

更加正确。


1.x分支包括对IE 6/7/8的支持,而2.x分支则不支持。


https:/ /blog.jquery.com/2016/05/20/jquery-1-12-4-and-2-2-4-released/

评论


这不是一个完整的答案。

– Flimm
19年5月29日在9:57

这是删除它的最突出原因。

– KFish
19年8月29日在4:20