Sự khác biệt giữa jQuery phiên bản 1, phiên bản 2 và phiên bản 3 là gì? [đóng cửa]


114

Gần đây tôi tình cờ gặp một webchart.jsthiết kế trang sử dụng jQuery phiên bản 2 và tôi đang sử dụng jQuery phiên bản 1.

Để mã hoạt động, hãy xem nó để sử dụng phiên bản mới nhất ngay bây giờ, sau đó tôi đã kiểm tra hỗ trợ lõi của jQuery và họ đã phát hành jQuery 3.

Tôi đang nghĩ đến việc sử dụng phiên bản 3 ngay bây giờ, nhưng tôi đang tìm kiếm xem phiên bản 3 có vấn đề về khả năng tương thích hay không và phiên bản này chỉ có thể được sử dụng trên các thiết bị cụ thể.

Câu trả lời:


250

Phiên bản chính

Phiên bản 1.0: Bản phát hành ổn định đầu tiên.
Phiên bản 2.0: Bỏ IE 6-8 hỗ trợ để cải thiện hiệu suất và giảm filesize
Phiên bản 3.0: Promises / A + hỗ trợ cho Deferreds, $.ajax$.when, .data()HTML5 tương thích

Tất cả các phiên bản

+----------------+--------------------+----------------------------+----------------+---------------------------------------------------------------------------------------+
| Version Number |    Release Date    |       Latest Update        | Size Prod (KB) |                                   Additional Notes                                    |
+----------------+--------------------+----------------------------+----------------+---------------------------------------------------------------------------------------+
| 1.0            | August 26, 2006    |                            |                | First stable release                                                                  |
| 1.1            | January 14, 2007   |                            |                |                                                                                       |
| 1.2            | September 10, 2007 | 1.2.6                      | 54             |                                                                                       |
| 1.3            | January 14, 2009   | 1.3.2                      | 55.9           | Sizzle Selector Engine introduced into core                                           |
| 1.4            | January 14, 2010   | 1.4.4                      | 76             |                                                                                       |
| 1.5            | January 31, 2011   | 1.5.2                      | 83             | Deferred callback management, ajax module rewrite                                     |
| 1.6            | May 3, 2011        | 1.6.4                      | 89             | Significant performance improvements to the attr() and val() functions                |
| 1.7            | November 3, 2011   | 1.7.2 (March 21, 2012)     | 92             | New Event APIs: .on() and .off(), while the old APIs are still supported.             |
| 1.8            | August 9, 2012     | 1.8.3 (November 13, 2012)  | 91.4           | Sizzle Selector Engine rewritten, improved animations and $(html, props) flexibility. |
| 1.9            | January 15, 2013   | 1.9.1 (February 4, 2013)   | 90             | Removal of deprecated interfaces and code cleanup                                     |
| 1.10           | May 24, 2013       | 1.10.2 (July 3, 2013)      | 91             | Incorporated bug fixes and differences reported from both the 1.9 and 2.0 beta cycles |
| 1.11           | January 24, 2014   | 1.11.3 (April 28, 2015)    | 95.9           |                                                                                       |
| 1.12           | January 8, 2016    | 1.12.4 (May 20, 2016)      | 95             |                                                                                       |
| 2.0            | April 18, 2013     | 2.0.3 (July 3, 2013)       | 81.1           | Dropped IE 68 support for performance improvements and reduction in filesize         |
| 2.1            | January 24, 2014   | 2.1.4 (April 28, 2015)     | 82.4           |                                                                                       |
| 2.2            | January 8, 2016    | 2.2.4 (May 20, 2016)       | 85.6           |                                                                                       |
| 3.0            | June 9, 2016       | 3.0.0 (June 9, 2016)       | 86.3           | Promises/A+ support for Deferreds, $.ajax and $.when, .data() HTML5-compatible        |
| 3.1            | July 7, 2016       | 3.1.1 (September 23, 2016) | 86.3           | jQuery.readyException added, ready handler errors are now not silenced                |
| 3.2            | March 16, 2017     | 3.2.1 (March 20, 2017)     | 84.6           | Hotfixes for regressions that were introduced in the 3.2.0                            |
| 3.3            | January 19, 2018   | 3.3.1 (January 20, 2018)   | 84.8           | Deprecation of old function calls, functions that accept classes now support them     |
|                |                    |                            |                | defined in an array                                                                   |
| 3.4            | April 10, 2019     | 3.4.1 (May 1, 2019)        | 86.1           | Performance improvements, nonce and nomodule support, fixes for radio elements, a     |
|                |                    |                            |                | minor security fix                                                                    |
| 3.5            | April 10, 2020     | 3.5.1 (May 4, 2020)        | 87.4           | Security fixes, .even() & .odd() methods, jQuery.trim deprecated                      |
+----------------+--------------------+----------------------------+----------------+---------------------------------------------------------------------------------------+

Tham khảo: https://en.wikipedia.org/wiki/JQuery#Release_history

Giải thích chi tiết về các phiên bản chính

Phiên bản 1.0 là bản phát hành ổn định đầu tiên của jQuery. Bản phát hành này hỗ trợ các trình duyệt web cũ hơn thậm chí không còn được các nhà phát triển tương ứng hỗ trợ nữa. Nếu bạn mong đợi một lượng lớn khách truy cập với các trình duyệt web cũ hơn, đây chắc chắn sẽ là phiên bản nên dùng.

Các phiên bản 2.0 đã bỏ hỗ trợ cho Internet Explorer 6-8 để tăng hiệu suất tổng thể của jQuery và giảm kích thước tệp của thư viện. Nói một cách đơn giản: Phiên bản 2.0 nhanh hơn và có kích thước tệp nhỏ hơn phiên bản 1.0, nhưng nó không còn hỗ trợ các trình duyệt web cũ hơn. Vì Microsoft đã bỏ hỗ trợ cho Windows XP, nên rất an toàn khi cho rằng khách truy cập của bạn sẽ sử dụng trình duyệt tương thích với phiên bản 2.0 trừ khi bạn biết trước điều này sẽ không xảy ra (xem phiên bản 1.0).

Với việc phát hành phiên bản 3.0, cả hai phiên bản 1.11.1 và 2.1.1 sẽ được nâng cấp lên jQuery Compat 3.0 và jQuery 3.0. jQuery Compat 3.0 sẽ vẫn hỗ trợ các trình duyệt cũ hơn như Internet Explorer 8 trong khi phiên bản 3.0 thông thường sẽ chỉ hỗ trợ các trình duyệt thường xanh (phiên bản hiện tại và trước đó của một trình duyệt cụ thể).

Với việc phát hành Phiên bản 3.0, không có lý do gì để gắn bó với phiên bản 1.0 hoặc 2.0. Một vài lưu ý từ blog jQuery chính thức:

  • Nếu bạn cần hỗ trợ cho nhiều loại trình duyệt bao gồm IE8, Opera 12, Safari 5, v.v., hãy sử dụng gói jQuery-Compat 3.0.0. Chúng tôi đề xuất phiên bản này cho hầu hết các trang web, vì nó cung cấp khả năng tương thích tốt nhất cho tất cả khách truy cập trang web.
  • Nếu trang web của bạn chỉ được xây dựng cho các trình duyệt tiên tiến nhất thường xanh hoặc là một ứng dụng dựa trên HTML có trong chế độ xem web (ví dụ: PhoneGap hoặc Cordova), nơi bạn biết công cụ trình duyệt nào đang được sử dụng, hãy chuyển đến gói jQuery 3.0.0 .
  • Cho đến khi chúng tôi thông báo khác, cả hai gói sẽ chứa các API công khai giống nhau trong các phiên bản chính và phụ được đánh số tương ứng. Điều này sẽ giúp các nhà phát triển dễ dàng chuyển đổi giữa hai và tương thích tối đa với các plugin jQuery của bên thứ ba.

Tham khảo: https://blog.jquery.com/2014/10/29/jquery-3-0-the-next-generations/


6
Lưu ý cho người dùng ASP.NET 4.0: jQuery 3.x ngắt postback. jquery.com/upgrade-guide/3.0/…
Jared Thirsk

2
Câu trả lời này có thực sự chính xác? Theo như tôi đã biết thì jQuery Compat 3.0 thậm chí không có sẵn trong nhiều phiên bản alpha.
HischT

2
@HischT Tài liệu tham khảo được cung cấp cùng với câu trả lời. Phần mà bạn đang nói đến thậm chí còn được sao chép đôi chút từ bài đăng trên blog của chính jQuery về điều này. Tôi không biết bạn muốn nó chính xác đến mức nào, nhưng tôi có thể đảm bảo rằng nó sẽ không tốt hơn việc có nguồn làm tài liệu tham khảo. Ngoài ra, hãy xem ngày của câu trả lời này. Đó là cách đây hơn 2 năm. Tôi cố gắng hết sức để cập nhật thông tin liên quan đến các bản phát hành mới, nhưng đó là khá nhiều. Nếu bạn cảm thấy có thể cải thiện được câu trả lời, hãy chỉnh sửa câu trả lời và để tôi hoặc cộng đồng xem xét.
icecub

2
@icecub Xin lưu ý rằng nhận xét của tôi được hình thành dưới dạng một câu hỏi chứ không phải là sự thật, bởi vì tôi không chắc chắn 100% về nó. Tôi vừa cố gắng tải xuống hoặc thậm chí tìm bất kỳ thông tin nào về jQuery Compat 3 và không thể tìm thấy thông tin nào khác ngoài bài đăng blog mà bạn đang đề cập đến và một phiên bản alpha bổ sung của nó. Đối với tôi, có vẻ như họ đã bỏ jQuery Compat 3 ngay trước khi ra mắt. Nếu ai đó có thể chứng minh tôi sai, tôi sẽ rất vui vì tôi thích sử dụng jQuery Compat 3 trong dự án của mình.
HischT

6
Jquery-compat đã bị hủy trước khi phát hành vào đầu năm 2016 sau khi MS bỏ hỗ trợ cho IE8-10. blog.jquery.com/2016/01/14/jquery-3-0-beta-released
Dan Is Fiddling By Firelight
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.