ทำไม WordPress ถึงใช้ jQuery v1.12.4 ที่ล้าสมัย?


25

ขณะตรวจสอบซอร์สโค้ดฉันเห็นว่า WordPress ใช้ jQuery v1.12.4 เหตุใด WordPress จึงใช้ jQuery รุ่นที่ล้าสมัยนี้


1
คำตอบนั้นง่ายมาก: WP ต้องการรักษาความเข้ากันได้ย้อนหลังกับเบราว์เซอร์รุ่นเก่า WP มีผู้ใช้เพียงพอที่ยังต้องการการสนับสนุน IE8 ที่พวกเขาไม่สามารถปล่อยได้
สิงโต

คำตอบ:


32

มีธีมและปลั๊กอินมากมายที่ใช้ jQuery ตามที่โหลดโดย WP core ทุกครั้งที่มีการอัปเดต jQuery มีความเสี่ยงต่อธีมและปลั๊กอินที่เก่ากว่า (เนื่องจากยังคงมีการใช้งานจำนวนมาก แต่ไม่ได้อัปเดตอีกต่อไป) นั่นคือเหตุผลที่คุณเห็นjquery-migrate.jsในซอร์สโค้ดของคุณด้วย มันเป็นสคริปต์ที่จับฟังก์ชั่นเก่าที่ใช้โดยปลั๊กอิน / ธีมและทำให้แน่ใจว่าพวกเขายังคงทำงานใน jQuery รุ่นใหม่กว่า

การย้ายไปยัง3.xตระกูลjQuery จะทำให้ปลั๊กอิน / ชุดรูปแบบหลายตัวแตกเนื่องจากไม่สามารถมีสคริปต์การย้ายข้อมูลสำหรับทุกสิ่งที่เลิกใช้แล้ว นี่คือสาเหตุที่เวอร์ชั่นใหม่ของ1.xครอบครัวยังคงได้รับการพัฒนาในขณะที่2.xและ3.xครอบครัวมีอยู่แล้ว จะไม่มีใหม่1.xและ2.xเวอร์ชันหลังจาก1.12และ2.2ยกเว้นสำหรับแพทช์ (ความปลอดภัย) แม้ว่า jQuery 1.12จะไม่ล้าสมัยในขณะนี้ แต่จะเป็นในอนาคตอันใกล้

ดังนั้น WordPress อยู่ในการผูก หากไม่อัพเกรดเป็นเวอร์ชั่น jQuery ที่สูงกว่าจะไม่สามารถติดตามความเป็นไปได้ใหม่ ๆ ได้ อย่างไรก็ตามหากมีการอัปเกรดไซต์เก่า ๆ ผลส่วนใหญ่ก็คือว่า WP จะรอสำหรับคู่ของปีที่ผ่านมาเพื่อให้รูปแบบเก่า / ปลั๊กอินจะถูกแบ่งออกอยู่แล้วและจากนั้นข้ามไปยัง3.xครอบครัว

การอธิบาย

ข้างต้นอาจแนะนำว่าการโยกย้ายจาก1.xเวอร์ชันไป3.xเป็นไปไม่ได้จริง ที่ไม่เป็นความจริง. มันค่อนข้างซับซ้อน เคล็ดลับคือการอัปเกรดเป็นครั้งแรก1.12ตรวจแก้จุดบกพร่องผลลัพธ์โดยใช้สคริปต์การโอนย้ายระบบเก่าแล้วเพิ่ม3.0สคริปต์การย้ายข้อมูลซึ่งใช้งาน1.12ได้ คำแนะนำรายละเอียดที่นี่

การปรับปรุงความปลอดภัย

นักพัฒนาจะสังเกตเห็นว่า Google Dev Tools / Lighthouse รายงานไซต์ WordPress ว่ามีความเสี่ยงเนื่องจากมี jQuery เวอร์ชันเก่ากว่านี้ - หรือดูเหมือนว่า คลังแสงทั้งหมดจะตรวจสอบว่าห้องสมุดนี้มีช่องโหว่ที่กล่าวถึงในฐานข้อมูลช่องโหว่ Snykหรือไม่ หากคุณตรวจสอบรายละเอียดนี้คุณจะพบว่าเวอร์ชั่น 1.12.4 นั้นสะอาด ด้วยการใช้งานที่แพร่หลายของ 1.12.4 คุณสามารถวางใจได้กับช่องโหว่ร้ายแรงที่เกิดขึ้นอย่างรวดเร็ว


4
เพียงแค่เพิ่มข้อมูลเพิ่มเติมเล็กน้อย - ทั้ง jQuery 1.x และ 2.x ได้รับการอัปเดตอย่างแข็งขันจนถึงเดือนพฤษภาคมปีนี้ความแตกต่างระหว่างพวกเขาเพียงแค่นั้นคือ 1.x มีความเข้ากันได้กับ IE8 และ 2.x ลบแพตช์ออก และแก้ไขสำหรับเบราว์เซอร์บั๊กกี้เหล่านั้น 3.x เป็นรุ่นใหม่และก้าวไปอีกขั้นหนึ่งโดยเปลี่ยนอินเทอร์เฟซต่าง ๆ ให้เข้ากันได้กับอินเทอร์เฟซ "ทางการ" HTML5 / JavaScript (เช่นที่มันทำในลักษณะเดียวกันสิ่งต่าง ๆ กลายเป็นมาตรฐานหลังจาก jQuery มีรุ่นของตัวเอง ทำสิ่งเดียวกัน)
Rycochet

23
  • มันไม่ล้าสมัย
  • การเลื่อนไปที่ 2.x หรือ 3.x เร็วเกินไปผู้คนยังคงใช้ IE8 ซึ่งรองรับเฉพาะใน 1.x เท่านั้น

2
@LightnessRacesinOrbit เห็นด้วย แต่จากประสบการณ์ของฉันคำถามนี้เป็นจุดที่เกี่ยวกับความสามารถเฉลี่ยของนักพัฒนา WP
MonkeyZeus

7
อัปเดตสำหรับเดือนมกราคม 2018: แนวคิดที่ล้าสมัยแม้จะยังคงเป็นค่าเริ่มต้นที่มาพร้อมกับ WordPress จะไม่ "ไร้สาระ" อีกต่อไป ช่องโหว่ XSS ถูกระบุด้วย 1.12.4 และสาขา 1.x ไม่ได้รับการอัพเดตอีกต่อไป การแก้ไขที่แนะนำคือการอัปเกรดเป็น jquery 3.x snyk.io/test/npm/jquery/ ......
squarecandy

2
นอกจากนี้เมื่อใช้ Lighthouse Google จะบอกคุณว่ารุ่น 1.12.4 มีช่องโหว่ด้านความปลอดภัยที่รู้จักดังนั้นคุณไม่ควรใช้
phpheini

4
รองรับ IE8 ซึ่ง Microsoft ไม่ได้ทำอยู่ ณ จุดนี้ไม่รับผิดชอบ มันทำให้คนใช้เบราว์เซอร์ที่ล้าสมัยด้วยปัญหาด้านความปลอดภัย หากใครบางคนกำลังใช้ IE8 พวกเขาจำเป็นต้องหยุด
David A. French

1
@ DavidA.French ฉันสองการเคลื่อนไหว ผู้พัฒนาต้องการ STOP เพื่อรองรับผู้ใช้ที่ปฏิเสธการอัพเดท มีบางครั้งที่ทุกคนปรารถนาที่จะมีความเข้ากันได้กับเบราว์เซอร์ที่รู้จักกันดีและนิสัยที่ไม่ดีเหล่านั้นยังคงมีอยู่ บางทีเมื่อ interwebs หยุดทำงานเพื่อคนเหล่านั้นจะอัปเดตเป็นเบราว์เซอร์ที่ทันสมัย ณ จุดนี้หากคุณไม่ได้อยู่ในเบราว์เซอร์ที่สำคัญรุ่นล่าสุด (IE & AOL จะไม่นับเลย) อินเทอร์เน็ตไม่ควรโค้งงอสำหรับคุณ สุจริต IE8 คุณชอบน้อยกว่า 1% ของเว็บ [พูดใน AOL] "ลาก่อน"
KFish

1

เพื่อให้ถูกต้องมากยิ่งขึ้น

สาขา 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

2
นั่นเป็นเหตุผลที่โดดเด่นที่สุดที่จะทิ้งมันไว้
KFish
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.