อะไรคือความแตกต่างระหว่างแพคเกจ jquery ปกติและแบบบาง?


436

ที่CDNJS jquery.slim แพ็คเกจจะถูกวางไว้ มันมีขนาดที่เล็กกว่า อะไรคือความแตกต่างที่สำคัญจากต้นฉบับ? การดูรหัสอย่างรวดเร็วนั้นไม่ได้นำมาซึ่งคำตอบและที่ jquery.com ฉันไม่พบข้อมูลอ้างอิงเกี่ยวกับslimแพ็คเกจ

ดังนั้นอะไรคือความแตกต่างระหว่าง jquery.js และ jquery.slim.js



ในมุมมองของฉันคุณยอมรับคำตอบปานกลางและควรเปลี่ยนสิ่งนั้น
Robert Siemer

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

ฉันไม่เห็นด้วยกับคุณ คะแนนโหวตสำหรับคำตอบที่ยอมรับไม่มีอะไรเทียบกับคำตอบอื่น ๆ ด้านล่าง (และคุณควรรู้) และอะไรก็ตามที่คำตอบย้อนเวลากลับไม่เกี่ยวข้องอย่างสมบูรณ์สำหรับเว็บไซต์ q / a สาธารณะ ผู้คนมาที่นี่ตอนนี้และต้องการคำตอบที่ดีที่สุดเท่าที่จะเป็นไปได้ เพิ่มเติม: Bhojendra Rauniyar สามารถทำได้โดยไม่ต้อง 15 ตัวแทน จุด
Robert Siemer

จำนวน downvotes แบบสัมบูรณ์เป็นตัวบ่งชี้คุณภาพที่ดีกว่าเมื่อเปรียบเทียบกับคำตอบอื่น ๆ - ฉันเพิ่งรู้ว่าคำตอบที่สองนั้นได้รับการโหวตมากที่สุดดังนั้นจึงไม่มีอะไรจะพูดมากไปกว่านี้อีกแล้ว
Robert Siemer

คำตอบ:


296

ดูรหัสฉันพบความแตกต่างต่อไปนี้ระหว่าง jquery.js และ jquery.slim.js:

ใน jquery.slim.js คุณลักษณะต่อไปนี้จะถูกลบออก:

  1. jQuery.fn.extend
  2. jquery.fn.load
  3. jquery.each // แนบฟังก์ชันมากมายสำหรับการจัดการเหตุการณ์ AJAX ทั่วไป
  4. jQuery.expr.filters.animated
  5. การตั้งค่า ajax เช่น jQuery.ajaxSettings.xhr, jQuery.ajaxPrefilter, jQuery.ajaxSetup, jQuery.ajaxPrefilter, jQuery.ajaxTransport, jQuery.ajaxSetup
  6. การแยกวิเคราะห์ XML อย่าง jQuery.parseXML
  7. ผลภาพเคลื่อนไหวเช่น jQuery.easing, jQuery.Animation, jQuery.speed

6
ในแหล่งที่มาที่เพรียวบาง 3.x ฉันยังคงเห็นjQuery.fn.extendการใช้วิธีการเพิ่มชุดการห่อ คุณหมายถึงอย่างอื่นใน # 1 หรือไม่?
cantera

39
เป็นที่น่าสังเกตว่าBootstrap 4มีเป้าหมายที่จะเปิดตัว jQ slim ภาพเคลื่อนไหวอาจเป็นจุดแตกหักที่ใหญ่ที่สุด แต่ส่วนใหญ่สามารถทำได้ดีกว่าและเร็วกว่าโดยใช้ CSS3
Josh Habdas

3
คุณหมายถึงอะไรโดย "jQuery.each" jQuery.each ยังไม่ถูกลบใน jQuery 3 slim
Chris Moschini

18
อาจต้องการแก้ไขคำตอบเพื่อแสดงสิ่งนี้แตกต่างกัน - การพูด jquery.each ที่นี่ในรายการของสิ่งที่ถูกลบนั้นทำให้เกิดความสับสน
Chris Moschini

1
ฟังก์ชั่นเช่น slideUp, slideDown ยังไม่สามารถใช้งานได้กับบางรุ่น
Usman Arshad

316

คำตอบสั้น ๆ จากการประกาศ jQuery 3.0 Final Release :

นอกเหนือจาก jQuery เวอร์ชันปกติที่มีโมดูล ajax และเอฟเฟกต์แล้วเรายังเปิดตัวรุ่น“ slim” ที่ไม่รวมโมดูลเหล่านี้ โดยรวมแล้วไม่รวม ajax, effects และ code ที่ไม่รองรับในปัจจุบัน

ขนาดไฟล์ (gzipped) น้อยกว่า 6k, 23.6k เทียบกับ 30k


40

ในเวลานี้คำตอบที่เชื่อถือได้มากที่สุดดูเหมือนจะอยู่ในปัญหานี้ซึ่งระบุว่า "เป็นโครงสร้างแบบกำหนดเองของ jQuery ซึ่งไม่รวมเอฟเฟกต์ ajax และรหัสที่เลิกใช้แล้ว" รายละเอียดจะประกาศด้วย jQuery 3.0

ฉันสงสัยว่าเหตุผลในการยกเว้นส่วนประกอบเหล่านี้ของไลบรารี jQuery นั้นเป็นการรับรู้ถึงสถานการณ์ทั่วไปของ jQuery ที่ใช้ร่วมกับเฟรมเวิร์ก JS อื่นเช่น Angular หรือ React ในกรณีเหล่านี้การใช้ jQuery นั้นใช้สำหรับการสำรวจเส้นทาง DOM และการจัดการเป็นหลักดังนั้นการปล่อยให้องค์ประกอบเหล่านั้นล้าสมัยหรือจัดเตรียมโดยเฟรมเวิร์กจะได้รับการลดขนาดไฟล์ลง 20%


10
สามารถใช้งานโดยนักพัฒนาที่ใช้คุณสมบัติที่ทันสมัยเช่นfetch()ซึ่งเป็นการทดแทนที่ทันสมัยสำหรับXMLHttpRequest(AJAX)
Fred

25

บล็อก jQuery, jQuery 3.1.1 เปิดตัวแล้ว! พูดว่า

ผอมเพรียว

บางครั้งคุณไม่จำเป็นต้องใช้ ajax หรือคุณต้องการใช้หนึ่งในห้องสมุดแบบสแตนด์อโลนจำนวนมากที่มุ่งเน้นไปที่คำขอ ajax และบ่อยครั้งที่มันง่ายกว่าที่จะใช้การผสมผสานระหว่าง CSS และการจัดการคลาสสำหรับภาพเคลื่อนไหวบนเว็บของคุณ นอกเหนือจาก jQuery เวอร์ชันปกติที่มีโมดูล ajax และเอฟเฟกต์แล้วเราได้เปิดตัวรุ่น“ slim” ที่ไม่รวมโมดูลเหล่านี้ โดยรวมแล้วไม่รวม ajax, effects และ code ที่ไม่รองรับในปัจจุบัน ขนาดของ jQuery แทบจะไม่เกี่ยวข้องกับประสิทธิภาพการโหลดในปัจจุบัน แต่รุ่นที่บางนั้นมีขนาด 6k gzipped ไบต์ที่เล็กกว่ารุ่นปกติ - 23.6k เทียบกับ 30k


17

ฉันเห็นว่า$.ajaxถูกลบออกจาก jQuery slim 3.2.1

จากเอกสาร jQuery

คุณยังสามารถใช้รูปทรงเพรียวบางซึ่งไม่รวม ajax และเอฟเฟกต์

ด้านล่างนี้เป็นความคิดเห็นจากรุ่นที่บางเฉียบพร้อมคุณสมบัติที่ถูกลบออก

/*! jQuery v3.2.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector | (c) JS Foundation and other contributors | jquery.org/license */

ทางเลือกของ $ .ajax คืออะไร?
Zyo

2
@Zyo อาจใช้วัตถุ xmlhttprequest ใน JavaScript ธรรมดาหรือใช้ jQuery เวอร์ชันปกติ
kiranvj

API การดึงข้อมูลเป็นพื้นเมืองและมีประสิทธิภาพจริงๆ developer.mozilla.org/en-US/docs/Web/API/Fetch_APIที่นี่วิธีใช้งานdeveloper.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
Octavioamu

@Octavioamu fetch เป็นตัวเลือก แต่อาจจำเป็นต้องใช้ polyfill ตามเบราว์เซอร์ที่สนับสนุน
22919

5

ตามที่ระบุไว้อาแจ็กซ์และผลกระทบโมดูลได้รับการยกเว้นจาก jQuery บางขนาดแตกต่างกันเป็นของ 3.3.1 สำหรับรุ่นซิป minified เป็น 85k VS 69k (16k ประหยัดสำหรับบาง) หรือ 30vs24 สำหรับซิปมันเป็นสิ่งสำคัญที่จะทราบว่าบูต 4 การใช้งาน slim jQueryดังนั้นหากใครต้องการเวอร์ชั่นเต็มพวกเขาต้องโทรหามันแทน

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