ความแตกต่างระหว่าง jQuery กับ AngularJS กับ Node.js [ปิด]


106

ฉันเพิ่งเริ่มพัฒนาเว็บและจนถึงตอนนี้ฉันรู้ว่า:

HTML - รูปแบบของเว็บไซต์

CSS - ทำให้ดูสวย

JavaScript - ฟังก์ชันการทำงาน

แล้วjQuery , AngularJSและNode.jsคืออะไร?

หลังจากทำการค้นหาอย่างรวดเร็วฉันพบว่า jQuery คือ "ไลบรารี JavaScript" AngularJS คือ "เฟรมเวิร์กแอปพลิเคชันเว็บส่วนหน้าแบบโอเพนซอร์สที่ใช้ JavaScript" และ Node.js คือ "สภาพแวดล้อมรันไทม์ JavaScript"

ดูเหมือนว่าทั้งหมดจะเกี่ยวข้องกับ JavaScript ดังนั้นจึงเป็นภาษาใหม่หรือไม่? 'framework / library' หมายถึงอะไร?

คำตอบง่ายๆจะได้รับการชื่นชม (ฉันเพิ่งเริ่มเขียนโปรแกรมบนเว็บ แต่ฉันคุ้นเคยกับการเขียนโปรแกรม)


2
โดยพื้นฐานแล้ว "ไลบรารี" เป็นเพียงชุดฟังก์ชันที่มีประโยชน์ซึ่งมีผู้อื่นเขียนและทดสอบให้คุณ - jQuery คือชุดของฟังก์ชัน JavaScript "เฟรมเวิร์ก" คือนามธรรมประเภทหนึ่งที่มีการเขียนโค้ดโครงสร้างแอปพลิเคชันทั่วไปสำหรับคุณและคุณสามารถแทนที่บิตของมันได้ตามความเหมาะสมกับความต้องการของแอพของคุณ NodeJS เป็นเครื่องมือที่ให้คุณเรียกใช้ JavaScript ที่อื่นที่ไม่ใช่ในเบราว์เซอร์ (มักจะอยู่บนเว็บเซิร์ฟเวอร์ดังนั้นแทนที่จะเป็น Java หรือ DotNET หรือ PHP หรืออะไรก็ตาม)
nnnnnn

3
คุณจะสบายดี คุณรู้ว่าทำไม? เพราะคุณเป็นคนพูดภาษาอังกฤษได้ มีของมากมายสำหรับคุณอยู่แล้ว คุณเพียงแค่ต้องใช้เวลาและเรียนรู้มัน ในประเทศของฉันภาษาอังกฤษเป็นเรื่องใหญ่ ฉันรู้จักผู้คนมากมายที่ดิ้นรนในการเรียนรู้การเขียนโปรแกรม (หลายคนยอมแพ้และเปลี่ยนไปทำงานอื่น) เพียงเพราะภาษาอังกฤษไม่ดี ยังคงอย่างที่ฉันบอกว่าจะต้องใช้เวลามากจากคุณ
vothaison

ดูคำถามนี้ด้วย
nnnnnn

คำตอบ:


202

jQuery เป็นไลบรารี (ฝั่งไคลเอ็นต์)

jQueryเป็นไลบรารี JavaScript ที่รวดเร็วขนาดเล็กน้ำหนักเบา "เขียนน้อยลงทำมากขึ้น" และมีคุณลักษณะมากมาย

ทำให้สิ่งต่างๆเช่นการส่งผ่านและการจัดการเอกสาร HTML การจัดการเหตุการณ์ภาพเคลื่อนไหวและAjaxง่ายขึ้นมากด้วย API ที่ใช้งานง่ายซึ่งทำงานได้กับเบราว์เซอร์จำนวนมาก

AngularJS เป็นเฟรมเวิร์ก MVC (ฝั่งไคลเอ็นต์)

AngularJSเป็นเฟรมเวิร์ก JavaScript MVC ฝั่งไคลเอ็นต์เพื่อพัฒนาเว็บแอปพลิเคชันแบบไดนามิก

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

Node.js เป็นแพลตฟอร์มและสภาพแวดล้อมรันไทม์ (ฝั่งเซิร์ฟเวอร์)

Node.jsเป็นสภาพแวดล้อมรันไทม์แบบโอเพ่นซอร์สข้ามแพลตฟอร์มสำหรับการพัฒนาแอปพลิเคชันฝั่งเซิร์ฟเวอร์และระบบเครือข่ายที่สร้างบน JavaScript Engine (V8 Engine) ของ Google Chrome แอปพลิเคชัน Node.js เขียนด้วย JavaScript และสามารถเรียกใช้ภายในรันไทม์ Node.js บน OS X, Microsoft Windows และ Linux

Node.js ยังมีไลบรารีที่หลากหลายของโมดูล JavaScript ต่างๆซึ่งช่วยลดความยุ่งยากในการพัฒนาเว็บแอปพลิเคชันโดยใช้ Node.js ในระดับที่ดี Node.js ใช้โมเดล I / O ที่ขับเคลื่อนด้วยเหตุการณ์และไม่ปิดกั้นซึ่งทำให้มีน้ำหนักเบาและมีประสิทธิภาพเหมาะสำหรับแอปพลิเคชันแบบเรียลไทม์ที่ใช้ข้อมูลจำนวนมากซึ่งทำงานบนอุปกรณ์แบบกระจาย

ไลบรารีกับกรอบงาน

ความแตกต่างที่สำคัญระหว่างไลบรารีและเฟรมเวิร์กคือ“ การกลับกันของการควบคุม” เมื่อคุณเรียกใช้เมธอดจากไลบรารีคุณจะเป็นผู้ควบคุม แต่ด้วยกรอบการควบคุมจะกลับหัว: กรอบงานเรียกคุณ

ใส่คำอธิบายภาพที่นี่

ห้องสมุด

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

กรอบ

การใช้งานเว็บแอปพลิเคชันโดยเฉพาะโดยที่โค้ดของคุณกรอกรายละเอียด เฟรมเวิร์กเป็นผู้รับผิดชอบและจะเรียกเข้าสู่รหัสของคุณเมื่อต้องการบางสิ่งที่เฉพาะเจาะจงของแอปพลิเคชัน เช่น AngularJS, Durandal , Ember.jsเป็นต้น


27

พูดง่ายๆว่า

  • jQuery - คือชุดของฟังก์ชัน JavaScript เพื่อจัดการ HTML และ CSS
  • AngularJS - เป็นกรอบงาน JavaScript ที่ช่วยคุณจัดระเบียบ HTML และ CSS
  • Node.js- เป็นรันไทม์ JavaScript ... คล้ายกับเบราว์เซอร์บนเซิร์ฟเวอร์หรือเครื่องโลคัลของคุณ แต่ไม่มีเอ็นจิ้นการเรนเดอร์เบราว์เซอร์และอุปกรณ์เสริมทั้งหมด .. มันเป็นแค่รันไทม์

ความแตกต่างที่สำคัญของไลบรารีกับเฟรมเวิร์กในคำง่ายๆ:
Frameworkกำหนดสถาปัตยกรรมบางอย่างและคาดว่าแอพพลิเคชั่นจะเป็นไปตามความคาดหวัง
Libraryคือชุดของ Building Block ระดับต่ำซึ่งมักจะให้ฟังก์ชันแบบละเอียดเพื่อแก้ปัญหาที่เฉพาะเจาะจงมาก (เช่น jquery.post () ฟังก์ชัน) *


17

jQuery

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

AngularJS

AngularJS เป็นเฟรมเวิร์กที่ใช้ในการสร้างส่วนติดต่อผู้ใช้แบบกราฟิก (GUI) ส่วนหน้าสำหรับเว็บไซต์แบบโต้ตอบและเว็บแอปพลิเคชัน เป็นการผสมผสานที่มีประสิทธิภาพเมื่อใช้ร่วมกับ Node.js

โหนด js

Node เป็นเฟรมเวิร์กที่ใช้ในการสร้างเว็บเซอร์วิสแบบแบ็คเอนด์เช่นปลายทางAPI RESTที่ดึงข้อมูลมาให้คุณอยู่เบื้องหลัง คุณสามารถเชื่อมต่อปุ่มและองค์ประกอบ GUI เข้ากับจุดสิ้นสุดเหล่านี้โดยใช้ AngularJS เพื่อสร้างเว็บแอปพลิเคชันที่ขับเคลื่อนด้วยข้อมูลและรายงานทางเว็บ เมื่อ RESTful บริการเหล่านี้จะรอจนกว่าส่วนหน้าจะส่งคำขอ (ผู้ใช้คลิกปุ่ม) และดำเนินการสืบค้นฐานข้อมูลหรืออ่านไฟล์และคายข้อมูลบางส่วนออกซึ่งเว็บแอปพลิเคชันสามารถแสดงต่อผู้ใช้ได้

กรอบโดยทั่วไป

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

AngularJS เป็นเหมือนทีมออกแบบตกแต่งภายในพร้อมกับระบบไฟฟ้าและ Node.js จะเป็นอย่างอื่น Oversimplified? อาจจะ. แต่คุณขอคำอธิบายง่ายๆ

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


7
  • กรอบงาน : อธิบายโครงสร้างที่กำหนดว่าคุณควรนำเสนอโค้ดของคุณอย่างไร ค่อนข้างคล้ายกับเทมเพลตโค้ดพร้อมตัวช่วยตัวสร้าง ฯลฯ เพื่อแก้ / ลดความซับซ้อนของปัญหาเฉพาะหรือทำให้สถาปัตยกรรมของคุณเป็น "ลำดับ" ตัวอย่างBackbone.js , RequireJS, Socket.IO เฟรมเวิร์กจะห่อหุ้มฟังก์ชันการทำงานของแอปพลิเคชันทั่วไปซึ่งช่วยให้นักพัฒนาสามารถมุ่งเน้นไปที่ส่วนที่เป็นเอกลักษณ์ของแอปพลิเคชันของตนได้

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

ดูที่นี่สำหรับข้อมูลเพิ่มเติม


"ห้องสมุด: เป็นชุดเครื่องมือทั้งหมด" - สังเกตว่าอาจเป็นชุดเครื่องมือขนาดเล็กมากหากมีวัตถุประสงค์เพื่อจัดการกับข้อมูลเช่นข้อมูลวันที่ / เวลา
nnnnnn

7

นี่คือสาเหตุที่พวกเขาได้รับความนิยมมากขึ้นในแต่ละวัน:

jQuery

  • รหัส Jquery ค่อนข้างสั้นกว่า บางครั้งโค้ด jQuery เพียงห้าบรรทัดก็เทียบเท่ากับโค้ด JavaScript ทั่วไป 25 บรรทัด (ตัวอย่างเช่นการโหลดไฟล์ข้อมูลด้วย AJAX) ซึ่งหมายความว่าโค้ดน้อยลงและไฟล์เล็กลงมาก
  • ไลบรารีขนาดใหญ่: jQuery ช่วยให้คุณสามารถใช้ฟังก์ชันต่างๆได้เมื่อเทียบกับไลบรารี JavaScript อื่น ๆ
  • ใช้งานง่ายสุด ๆ กับ Ajax: jQuery ช่วยให้คุณพัฒนาเทมเพลต Ajax ได้อย่างง่ายดาย Ajax เปิดใช้งานอินเทอร์เฟซที่ทันสมัยขึ้นซึ่งสามารถดำเนินการกับหน้าต่างๆได้โดยไม่ต้องโหลดทั้งหน้า

AngularJS

  • การผูกข้อมูลแบบสองทาง: ในขณะที่คุณสามารถเขียนเหตุการณ์การผูกข้อมูลแบบสองทางใน jQuery ไลบรารี JavaScript MVC ให้วิธีการเชื่อมต่อโมเดลกับมุมมองของคุณที่เปิดเผยมากขึ้น (โดยใช้ HTML)
  • เหมาะสำหรับ SPA ( แอปพลิเคชันหน้าเดียว ): ไลบรารีเช่น AngularJS, Aurelia, Ember.jsและMeteorจะจัดหาท่อประปาทั้งหมดให้คุณแทนที่จะเขียนทั้งหมดใน jQuery

โหนด js

  • มันเร็ว: นอกเหนือจากการเรียกใช้ JavaScript ที่รวดเร็วปานสายฟ้าแล้วเวทมนตร์ที่แท้จริงที่อยู่เบื้องหลัง Node.js ก็คือลูปเหตุการณ์ ลูปเหตุการณ์เป็นเธรดเดียวที่ดำเนินการ I / O ทั้งหมดแบบอะซิงโครนัส ตามเนื้อผ้าการดำเนินการ I / O จะรันแบบซิงโครนัส (การบล็อก) หรือแบบอะซิงโครนัสโดยการวางไข่ออกเธรดแบบขนานเพื่อทำงาน
  • ทำง่ายแบบเรียลไทม์: หาก Node.js มีความโดดเด่นในการเชื่อมต่อพร้อมกันจำนวนมากมันก็สมเหตุสมผลดีที่แอปพลิเคชันบนเว็บแบบเรียลไทม์ที่มีผู้ใช้หลายคนเช่นแชทและเกม ห่วงเหตุการณ์ของ Node.js ดูแลความต้องการของผู้ใช้หลายคน

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

ไฟล์เหล่านั้นจะถูกโหลดขณะโหลดเอกสาร เนื่องจากแนวทางปฏิบัติที่ดีที่สุดคือห้ามใช้ js จนกว่าจะโหลด DOM พวกเขาไม่สร้างความแตกต่างในความเร็วในการดำเนินการของเหตุการณ์คลิกหรือโฮเวอร์ของคุณ
ab29007

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

โอเค .. ถ้าคุณคิดอย่างนั้นฉันจะลบการโหลดเร็วขึ้น
ab29007

ฉันสามารถเขียน JQuery และ javascript ในโปรแกรมเดียวกันได้หรือไม่
K Split X

6

คุณใช้ HTML, CSS และ JavaScript เพื่อสร้างเว็บไซต์เชิงโต้ตอบ

jQuery เป็นเครื่องมือที่เขียนด้วย JavaScript

AngularJS เป็นเครื่องมือที่เขียนด้วย JavaScript

React เป็นเครื่องมือที่เขียนด้วย JavaScript

เครื่องมือเหล่านี้ช่วยให้คุณจัดการการโต้ตอบระหว่าง HTML, CSS และ JavaScript ตามกฎของเครื่องมือเหล่านี้ เมื่อเครื่องมือมีขนาดใหญ่มากอาจใช้ชื่อ "ไลบรารี" หรือ "เฟรมเวิร์ก" ขึ้นอยู่กับลักษณะของเครื่องมือ

เรามักเรียกใช้ JavaScript ในเว็บเบราว์เซอร์ แต่เมื่อไม่กี่ปีที่ผ่านมาสิ่งนี้เรียกว่า Node.js เข้ามาทำให้เราสามารถเรียกใช้ JavaScript นอกเบราว์เซอร์ได้อย่างง่ายดาย ฉันชอบคิดว่ามันเป็น "โปรแกรมที่เรียกใช้ JavaScript นอกเบราว์เซอร์" (ซึ่งหมายความว่า ... ไม่มี HTML หรือ CSS ให้ดู)

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