Tại sao WordPress sử dụng jQuery v1.12.4 lỗi thời?


25

Trong khi kiểm tra mã nguồn, tôi thấy rằng WordPress sử dụng jQuery v1.12.4. Tại sao WordPress sử dụng phiên bản jQuery lỗi thời này?


1
Câu trả lời rất đơn giản: WP muốn duy trì khả năng tương thích ngược với các trình duyệt cũ hơn. WP có đủ người dùng vẫn cần hỗ trợ IE8 mà họ chưa thể bỏ nó.
Simba

Câu trả lời:


32

Có nhiều chủ đề và plugin sử dụng jQuery như được tải bởi lõi WP. Mỗi khi jQuery được cập nhật, sẽ có nguy cơ các chủ đề và plugin cũ bị phá vỡ (vì rất nhiều trong số chúng vẫn được sử dụng nhưng không còn được cập nhật nữa). Đó là lý do tại sao bạn cũng thấy jquery-migrate.jstrong mã nguồn của mình. Đó là một tập lệnh bắt các hàm cũ được sử dụng bởi các plugin / chủ đề và đảm bảo rằng chúng vẫn hoạt động trong các phiên bản jQuery mới hơn.

Chuyển sang họ jQuery 3.xsẽ khiến nhiều plugin / chủ đề bị phá vỡ, vì không thể có tập lệnh di chuyển cho mọi thứ bị phản đối. Đây là lý do tại sao các phiên bản mới của 1.xgia đình vẫn đang được phát triển trong khi 2.xvà các 3.xgia đình đã tồn tại. Sẽ không có phiên bản mới 1.x2.x sau 1.122.2ngoại trừ các bản vá (bảo mật). Mặc dù jQuery 1.12không bị lỗi thời ngay bây giờ, nhưng nó sẽ có trong tương lai gần.

Vì vậy, WordPress là trong một ràng buộc. Nếu nó không nâng cấp lên phiên bản jQuery cao hơn, nó không thể theo kịp các khả năng mới. Tuy nhiên, nếu nó nâng cấp, các trang web cũ hơn sẽ bị hỏng. Kết quả rất có thể là WP sẽ chờ trong một vài năm, do đó, các chủ đề / plugin cũ hơn sẽ bị loại bỏ bằng mọi cách, và sau đó chuyển đến 3.xgia đình .

Làm rõ

Ở trên có thể gợi ý rằng việc di chuyển từ 1.xcác phiên bản sang 3.xthực tế là không thể. Đo không phải sự thật. Nó chỉ là một chút phức tạp. Mẹo đầu tiên là nâng cấp lên 1.12, gỡ lỗi kết quả bằng cách sử dụng tập lệnh di chuyển cũ hơn và sau đó thêm 3.0tập lệnh di chuyển, hoạt động với 1.12. Hướng dẫn chi tiết tại đây .

Cập nhật bảo mật

Các nhà phát triển sẽ nhận thấy rằng Google Dev Tools / Ngọn hải đăng báo cáo các trang web WordPress dễ bị tổn thương do sự hiện diện của phiên bản jQuery cũ hơn này - hoặc có vẻ như vậy. Trên thực tế, tất cả các ngọn hải đăng đều kiểm tra xem thư viện này có lỗ hổng được đề cập trong Cơ sở dữ liệu lỗ hổng Snyk hay không . Nếu bạn kiểm tra chi tiết này, bạn sẽ thấy phiên bản 1.12.4 sạch. Với việc sử dụng rộng rãi 1.12.4, bạn có thể tin tưởng vào bất kỳ lỗ hổng nghiêm trọng nào đang được xử lý nhanh chóng.


4
Chỉ cần thêm một chút thông tin bổ sung - cả jQuery 1.x và 2.x đã được tích cực cập nhật cho đến tháng 5 năm nay, sự khác biệt giữa chúng chỉ đơn giản là 1.x có khả năng tương thích với IE8 và 2.x đã xóa các bản vá và sửa lỗi cho các trình duyệt bị lỗi. 3.x là phiên bản mới và tiến xa hơn một bước bằng cách thay đổi các giao diện khác nhau để tương thích với các giao diện HTML5 / JavaScript "chính thức" (nghĩa là, nơi nó đã làm mọi thứ theo cách tương tự, mọi thứ trở thành tiêu chuẩn sau khi jQuery có phiên bản riêng của nó làm cùng một loại điều).
Rycochet

23
  • không lỗi thời
  • Chuyển sang 2.x hoặc 3.x là quá sớm, mọi người vẫn sử dụng IE8 chỉ được hỗ trợ trên 1.x

2
@LightnessRacesinOrbit Đồng ý nhưng từ kinh nghiệm của tôi, câu hỏi này được đặt ra liên quan đến tầm cỡ trung bình của một nhà phát triển WP.
MonkeyZeus

7
Cập nhật cho tháng 1 năm 2018: Ý tưởng rằng nó đã lỗi thời mặc dù vẫn là mặc định đi kèm với WordPress không còn là "vô nghĩa". Các lỗ hổng XSS đã được xác định với 1.12.4 và nhánh 1.x không còn nhận được cập nhật. Biện pháp khắc phục được đề xuất là nâng cấp lên jquery 3.x snyk.io/test/npm/jquery/ Kẻ
squarecandy

2
Ngoài ra, khi sử dụng Ngọn hải đăng, Google sẽ cho bạn biết rằng phiên bản 1.12.4 có chứa các lỗ hổng bảo mật đã biết, do đó bạn không nên sử dụng nó.
phpheini

4
Hỗ trợ IE8, điều mà Microsoft thậm chí không làm là vào thời điểm này là vô trách nhiệm. Nó giữ cho mọi người sử dụng một trình duyệt lỗi thời với các vấn đề bảo mật. Nếu ai đó đang sử dụng IE8, họ cần dừng lại.
David A. Pháp

1
@ DavidA. Cờ lê tôi thứ hai chuyển động. Các nhà phát triển cần DỪNG hỗ trợ người dùng từ chối cập nhật. Đã có lúc mọi người đều khao khát có được khả năng tương thích hoàn toàn trên mọi trình duyệt có thể biết và những thói quen xấu đó vẫn tiếp tục tồn tại. Có thể khi các interweb ngừng hoạt động cho họ, những người đó sẽ cập nhật lên một trình duyệt hiện đại. Tại thời điểm này, nếu bạn không có phiên bản mới nhất của một trong những trình duyệt chính (IE & AOL hoàn toàn không tính) thì internet không nên bẻ cong cho bạn. Trung thực IE8? Bạn giống như ít hơn 1% web, [nói trong AOL] "Tạm biệt"
KFish

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.