jQuery เวอร์ชัน 1 เวอร์ชัน 2 และเวอร์ชัน 3 แตกต่างกันอย่างไร [ปิด]


114

ฉันเพิ่งสะดุดกับการwebchart.jsออกแบบเพจโดยใช้ jQuery เวอร์ชัน 2 และฉันใช้ jQuery เวอร์ชัน 1

เพื่อให้รหัสใช้งานได้ให้ใช้ตอนนี้เป็นเวอร์ชันล่าสุดจากนั้นฉันตรวจสอบการสนับสนุนหลักของ jQuery และมีการเผยแพร่ jQuery 3

ตอนนี้ฉันกำลังคิดว่าจะใช้เวอร์ชัน 3 แต่ฉันกำลังมองหาว่าเวอร์ชัน 3 มีปัญหาความเข้ากันได้หรือไม่ซึ่งอาจใช้กับอุปกรณ์บางอย่างเท่านั้น

คำตอบ:


250

เวอร์ชันหลัก

เวอร์ชัน 1.0: รุ่นแรกที่เสถียร
เวอร์ชัน 2.0: ลดลง 6-8 IE การสนับสนุนสำหรับการปรับปรุงประสิทธิภาพการทำงานและลดลงในขนาดไฟล์
เวอร์ชัน 3.0: สัญญา / A +สนับสนุนสำหรับ Deferreds, $.ajaxและ$.when, .data()HTML5 ได้

ทุกรุ่น

+----------------+--------------------+----------------------------+----------------+---------------------------------------------------------------------------------------+
| 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                      |
+----------------+--------------------+----------------------------+----------------+---------------------------------------------------------------------------------------+

อ้างอิง: https://en.wikipedia.org/wiki/JQuery#Release_history

คำอธิบายโดยละเอียดเกี่ยวกับเวอร์ชันหลัก

เวอร์ชัน 1.0 เป็น jQuery รุ่นแรกที่เสถียร รุ่นนี้รองรับเว็บเบราว์เซอร์รุ่นเก่าที่ไม่ได้รับการสนับสนุนจากนักพัฒนาที่เกี่ยวข้องอีกต่อไป หากคุณคาดหวังว่าจะมีผู้เยี่ยมชมจำนวนมากที่มีเว็บเบราว์เซอร์รุ่นเก่านี่น่าจะเป็นเวอร์ชันที่เหมาะสำหรับคุณ

เวอร์ชัน 2.0 ลดการรองรับ Internet Explorer 6-8 เพื่อเพิ่มประสิทธิภาพโดยรวมของ jQuery และลดขนาดไฟล์ของไลบรารี พูดง่ายๆคือเวอร์ชัน 2.0 มีขนาดไฟล์เร็วกว่าและเล็กกว่าเวอร์ชัน 1.0 แต่ไม่รองรับเว็บเบราว์เซอร์รุ่นเก่าอีกต่อไป เนื่องจาก Microsoft ยกเลิกการสนับสนุน Windows XP จึงปลอดภัยพอสมควรที่จะสันนิษฐานว่าผู้เยี่ยมชมของคุณจะใช้เบราว์เซอร์ที่เข้ากันได้กับเวอร์ชัน 2.0 เว้นแต่คุณจะทราบล่วงหน้าจะไม่เป็นเช่นนั้น (ดูเวอร์ชัน 1.0)

ด้วยการเปิดตัวเวอร์ชัน 3.0 ทั้งเวอร์ชัน 1.11.1 และ 2.1.1 จะได้รับการอัปเกรดเป็น jQuery Compat 3.0 และ jQuery 3.0 jQuery Compat 3.0 จะยังคงรองรับเบราว์เซอร์รุ่นเก่าเช่น Internet Explorer 8 ในขณะที่เวอร์ชันปกติ 3.0 จะรองรับเฉพาะเบราว์เซอร์สีเขียวตลอดปีเท่านั้น (เบราว์เซอร์เวอร์ชันปัจจุบันและเวอร์ชันก่อนหน้า)

ด้วยการเปิดตัวเวอร์ชัน 3.0 ไม่มีเหตุผลที่จะยึดติดกับเวอร์ชัน 1.0 หรือ 2.0 บันทึกย่อบางส่วนจากบล็อก jQuery อย่างเป็นทางการ:

  • หากคุณต้องการการสนับสนุนสำหรับเบราว์เซอร์ที่หลากหลายที่สุดรวมถึง IE8, Opera 12, Safari 5 และอื่น ๆ ให้ใช้แพ็คเกจ jQuery-Compat 3.0.0 เราขอแนะนำเวอร์ชันนี้สำหรับเว็บไซต์ส่วนใหญ่เนื่องจากมีความเข้ากันได้ดีที่สุดสำหรับผู้เยี่ยมชมเว็บไซต์ทั้งหมด
  • หากเว็บไซต์ของคุณสร้างขึ้นสำหรับเบราว์เซอร์ระดับแนวหน้าที่เขียวชอุ่มตลอดปีหรือเป็นแอปที่ใช้ HTML ที่มีอยู่ในเว็บวิว (เช่น PhoneGap หรือ Cordova) ซึ่งคุณทราบว่าเบราว์เซอร์ใดใช้งานอยู่ให้ไปที่แพ็คเกจ jQuery 3.0.0 .
  • จนกว่าเราจะประกาศเป็นอย่างอื่นทั้งสองแพ็กเกจจะมี API สาธารณะเดียวกันในเวอร์ชันหลักและเวอร์ชันรองที่มีหมายเลขตรงกัน สิ่งนี้จะช่วยให้นักพัฒนาสามารถสลับไปมาระหว่างทั้งสองได้ง่ายและเข้ากันได้สูงสุดกับปลั๊กอิน jQuery ของบุคคลที่สาม

อ้างอิง: https://blog.jquery.com/2014/10/29/jquery-3-0-the-next-generations/


6
หมายเหตุสำหรับผู้ใช้ ASP.NET 4.0: jQuery 3.x แบ่ง postback jquery.com/upgrade-guide/3.0/…
Jared Thirsk

2
คำตอบนี้ถูกต้องจริงหรือ? เท่าที่ฉันได้เรียนรู้ jQuery Compat 3.0 ยังไม่มีให้ใช้งานมากกว่าเวอร์ชันอัลฟ่า
HischT

2
@HischT มีการอ้างอิงถึงคำตอบ ส่วนที่คุณพูดถึงนั้นคัดลอกมาจากบล็อกโพสต์ของ jQuery เกี่ยวกับเรื่องนี้ ฉันไม่รู้ว่าคุณต้องการให้แม่นยำแค่ไหน แต่ฉันมั่นใจได้ว่ามันจะไม่ดีไปกว่าการมีแหล่งที่มาเป็นข้อมูลอ้างอิง นอกจากนี้ให้ดูวันที่ของคำตอบนี้ นั่นเป็นเวลากว่า 2 ปีที่แล้ว ฉันพยายามอย่างเต็มที่ที่จะอัปเดตข้อมูลที่เกี่ยวข้องเกี่ยวกับการเปิดตัวใหม่ให้ดีที่สุด หากคุณคิดว่าสามารถปรับปรุงได้โปรดแก้ไขคำตอบและรับการตรวจสอบโดยฉันหรือชุมชน
icecub

2
@icecub โปรดทราบว่าความคิดเห็นของฉันถูกกำหนดเป็นคำถามและไม่ได้เป็นความจริงเพราะฉันไม่แน่ใจ 100% ฉันเพิ่งพยายามดาวน์โหลดหรือแม้แต่ค้นหาข้อมูลเกี่ยวกับ jQuery Compat 3 และไม่พบข้อมูลใด ๆ มากไปกว่าบล็อกโพสต์ที่คุณอ้างถึงและเวอร์ชันอัลฟ่าเพิ่มเติม สำหรับฉันดูเหมือนว่าพวกเขาทิ้ง jQuery Compat 3 ก่อนเปิดตัว ถ้าใครพิสูจน์ได้ว่าฉันผิดฉันจะดีใจมากเพราะฉันชอบใช้ jQuery Compat 3 ในโปรเจ็กต์ของฉัน
HischT

6
Jquery-compat ถูกยกเลิกก่อนเปิดตัวในต้นปี 2016 หลังจาก MS ยกเลิกการรองรับ IE8-10 blog.jquery.com/2016/01/14/jquery-3-0-beta-released
Dan Is Fiddling By Firelight
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.