การพัฒนา JavaScript ดั้งเดิมมีประโยชน์อย่างไรบ้าง? [ปิด]


33

เมื่อพิจารณาถึงการพัฒนา jQuery ที่ง่ายกว่ามากเมื่อเปรียบเทียบกับ JavaScript ดั้งเดิมสิ่งใดที่ทำให้คนละทิ้งห้องสมุดอย่าง jQuery

เป็นเพราะ jQuery มีข้อ จำกัด หรือช้า? ฉันหมายความว่าถ้า jQuery นั้นง่ายมากเมื่อเทียบกับจาวาสคริปต์ดั้งเดิมเหตุผลอะไรที่ผู้คนยังต้องใช้จาวาสคริปต์ที่บริสุทธิ์


1
jQuery เป็นเพียงไลบรารี - การเขียน JS ดั้งเดิมที่ใช้ jQuery ยังคงเขียน JS ดั้งเดิม นั่นเหมือนกับการถามว่า "การพัฒนาภาษา C ++ มีประโยชน์อะไรบ้าง?" เมื่อคุณพูดถึง "การพัฒนา C ++ โดยไม่มีบูสต์"
Zach


1
เป้าหมายหลักของ jQuery และ libs เก่าอื่น ๆ คือการสร้างส่วนบนของเบราว์เซอร์ที่แตกต่างกันด้วยอินเตอร์เฟส js ที่แตกต่างกัน (ตัวอย่างเช่นXMLHttpRequestvs ActiveXObject, หรือaddEventListenervs. attachEventหรือcss selectorsvs xpath selectorsvs no selector supportฯลฯ ฯลฯ ) ในเบราว์เซอร์ล่าสุดปัญหาส่วนใหญ่ไม่ได้ มีอยู่เพราะพวกเขาปฏิบัติตามมาตรฐานเดียวกัน
inf3rno

คำตอบ:


89

มาพูดถึงรถยนต์กัน

โอ้เดี๋ยวก่อนพวกเราทำไปแล้ว - จำเวลาที่เราเจอกันสักครั้งแล้วเหรอ? เราคุยกันเรื่องรถ ในความเป็นจริงคุณดูเหมือนจะเป็นผู้เชี่ยวชาญในรถยนต์ คุณสามารถอธิบายโดยละเอียดเกี่ยวกับสิ่งที่ถูกผิดและน่าตื่นเต้นเกี่ยวกับการแข่งขัน Formula 1 ล่าสุด คุณรู้ด้วยหัวใจทุกรุ่นของ Lamborghini รวมถึงราคาและการวางจำหน่าย คุณยังมีความคิดที่จะซื้อFerrari 599 GTB Fioranoของคุณเองและประหยัดได้ด้วย (ฉันพนันได้เลยว่าสเต็กมื้อค่ำไม่ได้ช่วยอะไรมากนัก)

ในขณะที่อธิบายความผิดพลาดของโตโยต้าด้วยเสียงที่ยอดเยี่ยมและตื่นเต้นคุณก็กระโดดจากเก้าอี้ของคุณและกรีดร้องขึ้นไปบนอากาศโบกมือให้คุณ: "ประณามเลยฉันเป็นผู้เชี่ยวชาญที่ยอดเยี่ยมในทุกสิ่งที่เกี่ยวข้องกับรถยนต์! ' จะเป็นช่างซ่อมรถยนต์! "

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

แต่มันจะเป็นไปได้ยังไง! คุณรู้ทุกอย่างเกี่ยวกับรถยนต์! ยกเว้น ... ทุกอย่างเกี่ยวกับรถยนต์ คุณสามารถรู้ได้ว่ารถในฝันของคุณมีเครื่องยนต์ V12 แต่คุณไม่รู้ว่ามันหมายถึงอะไรจริง ๆ

ดังนั้นคุณไม่ใช่ช่างซ่อมรถยนต์จริงๆ - คุณเป็นคนที่กระตือรือร้นในรถยนต์ และจนกว่าคุณจะเรียนรู้วิธีการทำงานของรถยนต์คุณจะยังคงกระตือรือร้น

ตอนนี้ให้ฉันถามคุณ วิธีการ$.fn.textทำงานหรือไม่ แล้วมันเกี่ยวกับ$.fnอะไร? พวกเขาหมายถึงอะไรจริง ๆ ? วิธีการที่ไม่$(something)กลับยักษ์ thingy มีสิ่งที่และสิ่งที่เป็นที่ thingy ว่า? คุณสามารถทำซ้ำฟังก์ชันการทำงานอย่างน้อยสักหน่อยในทางทฤษฎีได้หรือไม่? คุณสามารถรับมือกับ jQuery ได้หรือไม่?

การพูดว่า "native JavaScript is hard" นั้นเป็นเพียง ... false อันดับแรกและสำคัญที่สุดเนื่องจาก JavaScript เป็นภาษาไม่มีอะไรเกี่ยวข้องกับDOMซึ่งส่วนใหญ่เป็นนามธรรม jQuery ข้อสองเพราะเมื่อคุณเรียนรู้เกี่ยวกับ DOM แล้วคุณสามารถล่องเรือข้ามข้อผิดพลาดข้ามเบราว์เซอร์ที่พบได้บ่อยที่สุด แต่เป็นความลับเล็กน้อย - ทุกอย่างยากในตอนแรก ส่วนยาวเป็นผู้หญิงเลวในชั้นประถมศึกษาปีที่ 5

ในฐานะที่เป็นความคล้ายคลึงที่สองสำหรับคำตอบนี้: jQuery คือการใช้ JavaScript DOM (ไม่ JavaScript ภาษาเพียง DOM) ที่ชอบคือการArray.prototype.forEach forมันใช้งานได้ 99% ของคดีทั้งหมด และมันใช้งานได้ดี แต่สำหรับ 1% ที่ไม่ได้ครอบคลุมคุณจำเป็นต้องรู้วิธีใช้การforวนซ้ำถ้าเพียงเพื่อการปฏิบัติ คำตอบทั้งหมดนี้ขึ้นอยู่กับด้าน "บริสุทธิ์" ของคำถามและไม่ใช่แม้แต่ด้านเทคนิค (ขนาดของห้องสมุดตัวอย่างและสิ่งอื่น ๆ อีกมากมายตามที่อธิบายไว้ในคำตอบของ Michael Dorrant) เพราะฉันชอบจาวาสคริปต์และเมื่อผู้คนดูเหมือนจะทิ้งมันไว้อย่างไม่ตั้งใจพูดว่า "pah, javascriptians ที่โง่ ๆ " และโบกมือถุงมือสีขาวแฟนซี

หากคุณสามารถยอมรับความจริงที่ว่าคุณจะเป็นคนที่กระตือรือร้นจาวาสคริปต์อยู่เสมอฉันควรจะหยุดใคร แต่ถ้าคุณต้องการเป็นโปรแกรมเมอร์ JavaScript คุณต้องมีความรู้อย่างน้อยเลือกระหว่างการใช้ jQuery (หรือไลบรารีอื่น ๆ ) และไม่ใช้ไลบรารี เรียนรู้ DOM เรียนรู้วิธีใช้งาน เขียนห้องสมุดเล็ก ๆ ของคุณหรือฟังก์ชั่นตัวช่วยบางอย่าง และเมื่อคุณมีความรู้เกี่ยวกับ DOM และคุณเลือกที่จะใช้ jQuery - godspeed ความเกียจคร้านเป็นรางวัลสำหรับผู้ที่ทำงานหนัก


15
ส่วนยาวยังคงยาก!
Raynos

13
@anonymousDownvoter อธิษฐานอธิบาย เป็นเพราะคุณเป็นมังสวิรัติหรือ ฉันสามารถเปลี่ยนสเต็กเป็นเต้าหู้เบอร์เกอร์ แต่พูดตามตรงไม่ได้เลยว่ามีบางอย่างเช่น "เต้าหู้เบอร์เกอร์ตัวโต"
Zirak

10
+1 "$ (บางสิ่ง) จะส่งคืนสิ่งที่มีขนาดมหึมาได้อย่างไรและสิ่งนี้คืออะไรอย่างแน่นอน" ฮะ!
ThinkingStiff

3
นอกจากนี้ @ ไมค์มันผิดกฎหมายไม่เคยมีสถานะตอบเพราะมันบริสุทธิ์! @ # $ อัจฉริยะ
Erik Reppen

5
"สเต็กยอดเยี่ยม" ในโพสต์เป็นตัวพิมพ์โดยสมัครใจอย่าพยายามแก้ไข หากจำเป็นให้อ้างถึงการสนทนาเมตานี้เกี่ยวกับมัน
ริ้น

12

เหตุผลที่ฉันรู้:

  1. เมื่อความต้องการน้อยที่สุดให้พูด 1 onclick

  2. เมื่อความเร็วในการดาวน์โหลดมีความสำคัญและไลบรารี jQuery มีขนาดใหญ่เกินไปและคุณไม่จำเป็นต้องเขียนโค้ด (กำหนดเอง) เพื่อแทนที่

  3. เมื่อรวมเข้ากับเทคโนโลยีอื่น ๆ บางครั้ง raw js จะดีกว่า

  4. เมื่อทำงานกับระบบดั้งเดิม (aka 'การผลิต') เขียนไว้ใน js ด้วยรูปแบบที่กำหนดไว้แล้ว


13
ฉันสงสัยว่าบ่อยครั้งที่ # 2 กลายเป็นจริงได้อย่างไร คุณบันทึก 92K อาจดาวน์โหลดแคช แต่ท้ายที่สุดคุณก็เขียนโค้ด JS สำเร็จรูปมากขึ้น
Adam Rackis

4
ฉันไม่รู้เรื่องนั้น คุณสามารถทำให้ JS เป็นสิ่งที่คุณต้องการแทนที่จะรวมทั้งไลบรารีทั้งหมดไว้เป็นชุดย่อยของฟังก์ชันการทำงาน
Ryan Kinal

4
@Ryan Kinal - Adam Rackis มีจุดดีและถ้าคุณใช้ API ของ Google สำหรับการโหลด Jquery คุณสามารถโหลดได้จากที่เดียวกับที่ผู้ใช้ได้ดึงมาแล้ว
Ben DeMott

ฉันไม่เห็นด้วยกับ # 4 หากรหัสดั้งเดิมนั้นแย่มากและทุกคนในทีมเห็นด้วยและเป็นความคิดที่ดีที่จะเพิ่ม jQuery และใช้มันในรหัสในอนาคต
ThiefMaster

7

jQuery เป็นเพียงเฟรมเวิร์ก - ชุดเครื่องมือที่เขียนด้วย JavaScript เมื่อใช้ชุดเครื่องมือนั้นคุณยังคงใช้งาน JavaScript อยู่ บางคนชอบเขียน JavaScript โดยใช้เครื่องมือที่ jQuery มีให้บางคนเลือกที่จะไม่เลือกคนอื่นเลือกเครื่องมืออื่น ๆ

เหตุผลบางอย่างที่คุณอาจต้องการเขียน JavaScript "บริสุทธิ์" โดยไม่มี jQuery:

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

5

jQuery เป็นไลบรารีหรือกรอบงานใด ๆ เพิ่มระดับของบั๊กอีกชั้นหนึ่ง ฉันรักมัน แต่ฉันก็หายไปทั้งวันโดยมองหาจุดบกพร่องที่กลายเป็น jQuery core ไม่ใช่รหัสของฉัน (โอกาสที่หายาก แต่ไม่ใช่ของหายาก)

นอกจากนั้นฉันไม่พบเหตุผลอื่นใดที่จะไม่ใช้มัน:

  • ค่าใช้จ่ายน้อยที่สุดโดยเฉพาะอย่างยิ่งถ้าคุณไปกับรุ่นของ Google เป็นเจ้าภาพ ,
  • ช่วยให้นักพัฒนาจาวาสคริปต์ที่มีประสบการณ์น้อยเขียนโค้ดที่สะอาดและมีประสิทธิภาพมากขึ้น
  • มันเป็นส่วนใหญ่ข้ามแพลตฟอร์มที่สามารถช่วยชีวิตเมื่อคุณต้องจัดการกับเบราว์เซอร์รุ่นเก่า
  • คลังภาพขนาดใหญ่ของปลั๊กอินช่วยฉันเขียนต้นแบบในเวลาอันสั้น
  • DOM เหมาะสมแล้ว
  • อื่น ๆ...

แต่ไม่ควรใช้แทนความรู้ Javascript หากคุณไม่ทราบวิธีการใช้งานจาวาสคริปต์ล้วน ๆ คุณอาจหนีไปกับไลบรารี่เป็นครั้งแรก แต่ในระยะยาวคุณจะต้องเสียค่าใช้จ่าย

และแน่นอนว่ามีพวกเราทุกคนที่ถูกขังอยู่ในการต่อสู้กับมนุษย์ด้วย IE6 มาหลายปีแล้วและจะไม่ปล่อยเล่ห์อุบายของโรงเรียนเก่าของเราให้เป็นของเล่นใหม่ที่เป็นประกาย


2
คุณใช้ปลั๊กอิน jQuery ไหม? ส่วนใหญ่ของพวกเขาจะไม่ buggy และเต็มไปด้วยรหัสช้าและไม่ดี?
Raynos

@ Raynos The huge gallery of plugins help me write prototypes in very short times... เพียงแค่ต้นแบบฉันหลีกเลี่ยงพวกเขาในรหัสการผลิตเมื่อเป็นไปได้ มีบางปลั๊กอินที่มีรหัสที่ยอดเยี่ยมแน่นอน แต่คุณต้องมองยากมากสำหรับพวกเขา ...
Yannis

โดยทั่วไปแล้วต้นแบบต้นแบบหมายความว่า "น่าจะเป็นของเสีย แต่ตอนนี้เป็นรหัสการผลิต" ถ้าคุณใช้พวกมันกับต้นแบบของการทิ้งมันก็ไม่เป็นไร
Raynos

@Raynos Prototyping ไม่เพียง แต่เกี่ยวกับต้นแบบของการทิ้ง การสร้างต้นแบบเชิงวิวัฒนาการเป็นกระบวนการหลักของการพัฒนาเว็บ ... - เป็นอย่างไรสำหรับการตอบกลับที่ล่าช้า: P
yannis

"การสร้างต้นแบบเชิงวิวัฒนาการ" เรียกว่า "ตัดมุมขนาดใหญ่ตอนนี้และหวังว่าเราจะได้รับมากขึ้นจากการทำเช่นนั้นดังนั้นค่าใช้จ่ายของหนี้รหัสทั้งหมดที่เราจะได้รับ" ซึ่งแน่นอนว่าจะถูกต้องเฉพาะเมื่อมีการตัดมุมให้คุณในเวลาที่คุณต้องการให้ธุรกิจของคุณประสบความสำเร็จ มันเป็นเงินกู้
Raynos

5

ในสภาพแวดล้อมของเบราว์เซอร์คุณต้องใช้เครื่องมือการทำให้เป็นมาตรฐานของเบราว์เซอร์ข้าม เครื่องมือดังกล่าวมีสองรสชาติ

  • ล้อมวัตถุโฮสต์ด้วยวัตถุใหม่ซึ่งทำงานในลักษณะเดียวกันกับเบราว์เซอร์
  • ขยายโฮสต์วัตถุเพื่อใช้ DOM API

โดยทั่วไปคุณสามารถใช้โปรแกรมอรรถประโยชน์เหล่านี้ได้สามวิธี

  • ใช้ฟังก์ชั่นขนาดเล็กเช่นaddClassหรือsetTextตลอดรหัสของคุณเมื่อใดและที่คุณต้องการ
  • เขียนไลบรารีการทำให้เป็นมาตรฐานของเบราว์เซอร์ของคุณเอง
  • ใช้อันที่มีอยู่

คุณต้องมีกลไกการปรับสภาพมาตรฐานบางอย่างมิฉะนั้นคุณจะได้รับการสนับสนุนจากศูนย์ข้ามเบราว์เซอร์

สำหรับการใช้ที่มีอยู่ก็ไม่เป็นไร ฉันจะไม่ใช้ jQuery ส่วนตัวฉันกำลังเขียนห้องสมุดของตัวเอง ( DOM-shimมันแก้ไขเบราว์เซอร์โดยไม่เปิดเผย API propietory ต่างประเทศมันเปลี่ยนเบราว์เซอร์ของคุณให้เป็นเบราว์เซอร์มาตรฐานที่มีพฤติกรรมดี)


3

หากคุณไม่ต้องการความช่วยเหลือจาก DOM, เบราว์เซอร์ข้ามและเบราว์เซอร์รุ่นเก่า - คุณสามารถไปได้อย่างง่ายดายโดยไม่ต้องใช้ jQuery

นี่เป็นกรณีที่เมื่อคุณพัฒนาส่วนขยายเบราว์เซอร์, สคริปต์ greasemonkey (บางครั้ง), สิ่งที่ซ้ำซ้อนจำนวน, การพัฒนาสำหรับ Node.js หรือสภาพแวดล้อมที่ไม่ใช่เบราว์เซอร์อื่น ๆ


2

พร้อมกับคำตอบอื่น ๆ ที่นี่โดยเฉพาะอย่างยิ่งMichael Durrant ของฉันจะเห็นความเร็วเป็นเหตุผลสำคัญสำหรับฉันบางครั้งเลือกที่จะใช้ JavaScript ดิบ

เมื่อไม่นานมานี้ฉันได้ทำงานกับอนิเมชั่นหรืองานที่ต้องใช้ CPU มาก ๆ และบางครั้ง JavaScript แบบ raw นั้นเร็วกว่าถ้าฉันทำผ่าน jQuery

ตัวอย่างหนึ่งคือที่ฉันต้องการเปลี่ยนความทึบของposition: fixedองค์ประกอบที่สัมพันธ์กับหน้าเว็บที่ผู้ใช้เลื่อนดู เอฟเฟกต์ช้าเกินไปเมื่อฉันใช้ jQuery สำหรับสิ่งนี้ทำให้การเลื่อนเป็นกระตุกและเอฟเฟกต์จางหายไป ฉันเปลี่ยนเป็นการใช้จาวาสคริปต์ตรงและทุกอย่างเรียบเนียน แต่ IE <= 8


2

ฉันต้องคำนำคำตอบด้วยความซื่อสัตย์ที่เปิดกว้าง ฉันรัก jQuery มันทำให้ชีวิตของฉันง่ายขึ้นอย่างมากและทำให้โค้ด JavaScript มีความชัดเจนมากขึ้นซึ่งเป็นวิธีที่ฉันเชื่อว่าสิ่งต่าง ๆ ควรทำงาน

jQuery ทำหลายสิ่งหลายอย่าง ...

ใช่คุณสามารถเพิ่มปลั๊กอิน
ใช่คุณสามารถขยายเตอร์
ใช่มันง่ายนิเมชั่น

แต่ jQuery ไม่ได้ทำทุกอย่าง

คุณเคยลองทำงานในหลาย ๆ บริบทของหน้าต่างด้วย jQuery หรือไม่? jQuery ดูดที่จัดการกับบริบทหน้าต่างที่แตกต่างกันเพราะมันยังคงรักษาต้นฉบับwindowและdocumentบริบทจากหน้าต่างที่มันถูกเรียก

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

* นึกถึงป๊อปเอาต์ของ Gmail เพื่อเขียนอีเมลในหน้าต่างใหม่ไม่ใช่โฆษณาสแปม

ใช้มันเมื่อมันทำให้รหัสง่ายขึ้น

เวลาในการใช้ jQuery คือเมื่อคุณสามารถทำให้โค้ดของคุณง่ายขึ้นสั้นลงอ่านได้มากขึ้นและเร็วขึ้น

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


2

ดังที่คุณจะได้ทราบ jQuery เป็นกรอบงานทั่วไปที่ให้วิธีการมากมายที่พวกเราหลายคนไม่ได้ใช้ในโครงการของเรา (บางส่วนของพวกเขาฉันไม่ได้ใช้เลย)

มีสองเหตุผลหลักที่ไม่ใช้ jQuery หรือกรอบงานที่ได้รับการยอมรับอื่น ๆ

1. โครงการมีขนาดไม่ใหญ่หรือซับซ้อนพอที่จะใช้เฟรมเวิร์กดังกล่าว: ในกรณีนี้ coder ใช้การตัดสินใจอย่างชาญฉลาดจากประสบการณ์และความรู้ของเขาใน JavaScript สิ่งนี้จะช่วยให้เขาลดน้ำหนักหน้าและควบคุมโค้ดได้มากขึ้น

2. coder พัฒนากรอบงานของเขาเอง ฉันได้เห็นโครงการใน บริษัท ของฉันซึ่งมีกรอบ JavaScript ของตัวเอง เหตุผลที่พวกเขาอ้างถึงคือถ้าพวกเขาใช้ jQuery และมีข้อผิดพลาดใด ๆ ที่ต้องแก้ไขในนั้นพวกเขาต้องรอจนถึงรุ่นถัดไป ยิ่งกว่านั้นหากมีคุณสมบัติที่จะเพิ่มพวกเขาจำเป็นต้องถามทีม jQuery สำหรับมันหรือเพิ่มปลั๊กอินแม้ว่าการทำให้มันเป็นปลั๊กอินจะไม่เป็นความคิดที่ดี (พวกเขายกตัวอย่างของการใช้.liveสิ่งที่คล้ายกันใน เฟรมเวิร์กก่อนที่มันจะถูกเพิ่มเข้ากับ JQuery) การมีกรอบงานของคุณเองทำให้คุณสามารถควบคุมโค้ดได้มากขึ้น ข้อเสียคือคุณต้องบูรณาการวงล้อเกี่ยวกับปัญหาความเข้ากันได้ของเบราว์เซอร์ ฯลฯ นอกจากนี้หากกระบวนการพัฒนาไม่ดีกรอบของคุณจะขยายตัวและจะเพิ่มเวลาในการบำรุงรักษาเท่านั้น


0

ไมค์

ฉันคิดว่าคนป้องกันความเสี่ยงจากการใช้ห้องสมุดบางแห่งเกิดจากการพึ่งพาโซลูชั่นโครงสร้างพื้นฐาน / ห้องสมุดเพื่อทำงานบางอย่าง

แต่ขอให้ระมัดระวังในการจำภาษาที่มาและไปเหมือนห้องสมุดในระยะยาว

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

ตัวเอง? ฉันไม่คัดค้านการใช้ JQuery โดยเฉพาะ ฉันยังดูว่า Box2d.js หรือ three.js และค่อนข้างจะโอบกอดพวกเขาแม้ว่าอายุการเก็บในระยะสั้นมากกว่าพลาดผลไม้พวกเขามีให้

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


0

ฉันจะบอกว่าปัญหาหลักคือคนมากขึ้น (ส่วนใหญ่?) ไม่ทราบวิธีการรหัสใน JavaScript อีกต่อไป ถ้า jQuery ไม่สามารถทำอะไรพวกเขาก็ทำไม่ได้

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

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

กล่าวโดยย่อคือกรอบการทำงานที่ดี แต่ไม่ใช่ว่าทุกคนจะต้องเป็น


2
คำตอบของคุณจะแข็งแกร่งขึ้นหากพูดจาโผงผางน้อยและเน้นเฉพาะเจาะจงมากขึ้น

โพสต์นี้ค่อนข้างอ่านยาก (ผนังข้อความ) คุณจะช่วยแก้ไขมันให้เป็นรูปร่างที่ดีขึ้นได้ไหม
ริ้น

0

ฉันสามารถเพิ่มอีกสองเหตุผลที่ไม่ได้กล่าวถึง:

  1. เมื่อฉันเลือกเทคโนโลยีใหม่หลายครั้งฉันจะเริ่มด้วยโครงสร้างระดับล่างก่อนที่จะไปสู่ระดับที่สูงขึ้น ฉันเป็นนักพัฒนา C ++ / C # เป็นหลัก แต่เมื่อไม่นานมานี้เมื่อฉันเริ่มเล่น HTML / CSS / JavaScript เป็นครั้งแรกฉันเลือกที่จะไม่ใช้เฟรมเวิร์กใด ๆ เพราะฉันต้องการเข้าใจเทคโนโลยีเป็นครั้งแรก (นั่นคือจาวาสคริปต์ ภาษาเอง) ว่ากรอบงานนั้นสร้างขึ้นจากด้านบน

    • ต้องบอกว่าตั้งแต่ฉันได้ค้นพบ jQuery และไม่ต้องการกลับไปเขียนด้วยมือสิ่งที่ jQuery สามารถทำเพื่อคุณในรหัส 1-2 บรรทัด
  2. ฉันไม่ทราบว่ามันเป็นเรื่องธรรมดา แต่สำหรับฉันดูเหมือนว่ามีคนจำนวนมากที่เมื่อพวกเขาเห็นกรอบ / เทคโนโลยี / ภาษาถัดไปการตอบสนองครั้งแรกของพวกเขาคือ "ไม่ใช่ API อื่นสำหรับฉันที่จะเรียนรู้!" พวกเขาไม่สนใจว่า jQuery ง่ายเพียงใด แต่พวกเขาเห็นว่ายืนอยู่ระหว่างทางและส่งงานโดยใช้วิธี "จริงและทดลอง" นี่เป็นประเภทเดียวกันของคนที่ปฏิเสธที่จะใช้ห้องสมุด BoostหรือSTLใด ๆและยังคงใช้mallocสำหรับทุกสิ่ง คุณถามว่าทำไมพวกเขาเลือก JavaScript บริสุทธิ์มากกว่า jQuery และในความเป็นจริงพวกเขาไม่เคยเลือกเพราะส่วนใหญ่พวกเขาปฏิเสธที่จะประเมิน jQuery ในตอนแรกและมีความสุขอย่างสมบูรณ์กับการพัฒนาในปัจจุบันไม่ว่ามันจะช้าแค่ไหนก็ตาม


1
ผู้คนเลือกจาวาสคริปต์ที่บริสุทธิ์มากกว่า jQuery เพราะ jQuery เป็นเลเยอร์นามธรรมที่น่ากลัวซึ่งไม่จำเป็น
Raynos

แน่นอนมันซ่อนความแตกต่างระหว่างเบราว์เซอร์และนั่นเป็นเรื่องใหญ่ด้วยตัวเอง
Kos

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

... เครื่องมือที่น่ากลัวสำหรับการตอกตะปูด้วยมือจับมีน้ำหนักไม่เพียงพอ
DXM

1
คุณไม่จำเป็นต้อง jQuery เบราว์เซอร์มี API นี้ชื่อ DOM ที่ให้คุณทำทุกอย่างที่คุณต้องการ ปัญหาเบราว์เซอร์ข้ามสามารถแก้ไขได้โดยใช้ polyfills jQuery เป็นไลบรารีระดับปานกลางและเป็นวิธีการแก้ปัญหาระดับปานกลางในการรองรับเบราว์เซอร์รุ่นเก่า
Raynos

-1

jQuery เป็นไลบรารีที่เขียนขึ้นและสำหรับ JavaScript แนวคิดก็คือทำให้สิ่งที่ยาก / น่าเบื่อของ JavaScript ทั้งหมดง่ายขึ้นดังนั้นจึงเป็นการเร่งเวลาในการพัฒนาและทำให้สคริปต์ของคุณมีโอกาสทำงานข้ามเบราว์เซอร์ได้มากขึ้น

สิ่งใดที่ทำให้ jQuery นิยมใช้:

  • รวดเร็ว
  • ไลบรารี JavaScript ที่มีน้ำหนักเบา
  • เป็นไปตาม CSS 3
  • รองรับเบราว์เซอร์จำนวนมาก
  • เฟรมเวิร์ก jQuery สามารถขยายได้และจัดการการเปลี่ยนแปลง DOM, CSS, Ajax , เหตุการณ์และภาพเคลื่อนไหว

JavaScript เป็นภาษาในขณะที่ jQuery เป็นไลบรารีที่เขียนโดยใช้ JavaScript

นี่คือเหตุผลที่ทำให้ JavaScript ใช้งานได้ดีกว่า jQuery:

  1. มันโหลดไลบรารีสคริปต์ jQuery ทั้งหมดพร้อมกับหน้าเว็บทุกครั้ง มันเป็นข้อเสียเปรียบสำหรับเว็บไซต์การประมวลผลแบบสอบถามเร็ว /
  2. บางครั้ง jQuery framework ล่มสลาย / ขัดแย้งกับ framework อื่น ๆ
  3. หากคุณกำลังเขียนโค้ดอย่างง่าย ๆ เพียงแค่เลือกองค์ประกอบและแสดงการเปลี่ยนแปลง JavaScript ดั้งเดิมจะดีกว่ามาก
  4. หากการดำเนินการมีขนาดเล็กและดำเนินการภายในไม่กี่บรรทัดของรหัส JavaScript ก็ไม่ควรใช้ jQuery

เนื่องจากเหตุผลเหล่านี้ฉันต้องการใช้ JavaScript เพื่อหลีกเลี่ยงเฟรมเวิร์ก jQuery มันเป็นการดีกว่าที่จะเรียนรู้ JavaScript มากกว่าขึ้นอยู่กับไลบรารีดังกล่าว ...

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


1
"จัดการกับ DOM อย่างดีมาก" ฮ่า ๆ อะไรเหรอ?
ไม่ระบุตัวตน

ขอบคุณ @Incognito ที่แจ้งให้เราทราบเกี่ยวกับเรื่องนี้ .. แต่ดีกว่าห้องสมุดอื่น ๆ keyframesandcode.com/resources/javascript/deconstructed
Niranjan Singh

1
ลิงก์ผิดทางตรง jQuery สนับสนุนตัวเลือก psudo-css ผ่าน sizzle ไม่มีส่วนเกี่ยวข้องกับ DOM
ไม่ระบุตัวตน

ก็โอเค .. แม้ฉันจะได้เรียนรู้จากคุณเกี่ยวกับสิ่งนี้ .. คุณช่วยให้ฉันเชื่อมโยงหรือข้อมูลเกี่ยวกับสิ่งเหล่านี้ .. ฉันได้อัปเดตคำตอบ ..
Niranjan Singh

yuiblog.com/blog/2006/10/20/video-crockford-domtheoryเป็นการเริ่มต้นที่ดีจากนั้นอ่านข้อมูลจำเพาะของ w3c บน DOM
ไม่ระบุตัวตน

-4

ฉันคิดว่าผู้คนใช้ jQuery เพราะมันง่ายกว่าง่ายขึ้นและมีประสิทธิภาพมากกว่าและเพราะช่วยให้พวกเขาลืม IE ได้ นอกจากนี้สำหรับฟังก์ชั่นที่กำหนดเองคนใช้จาวาสคริปต์ ลองอ้างอิงDOCสำหรับรายละเอียดเพิ่มเติม

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