Ưu điểm của việc sử dụng JavaScript thuần so với JQuery


86

Những lợi thế của việc chỉ sử dụng Javascript so với chỉ sử dụng JQuery là gì?

Tôi có kinh nghiệm hạn chế với mã hóa JavaScript và JQuery. Tôi đã thêm các bit và đoạn mã của từng trang vào HTML nhưng tôi chủ yếu mã hóa các thứ phía máy chủ bằng các ngôn ngữ khác. Tôi đã nhận thấy rằng về mặt lý thuyết bạn có thể làm những điều tương tự bằng cách sử dụng một trong hai cách tiếp cận (và tất nhiên bạn thậm chí có thể kết hợp chúng trong cùng một dự án), dường như có xu hướng luôn bắt đầu sử dụng JQuery ngay từ đầu không có vấn đề gì các dự án yêu cầu.

Vì vậy, tôi chỉ đơn giản là tự hỏi, có bất kỳ lợi ích đúng giờ nào để không sử dụng chỉ JQuery mà thay vào đó chỉ sử dụng JavaScript cũ đơn giản?

Tôi biết điều này có vẻ như không phải là câu hỏi bởi vì có thể nói về nó rằng "không có câu trả lời chắc chắn" hoặc "nó có thể được tranh luận mãi mãi", nhưng tôi thực sự hy vọng câu trả lời đúng giờ như "Bạn có thể làm điều này trong một cách tiếp cận và bạn không thể làm điều đó với cách khác ".


Theo nhận xét của Scrwtp, tôi không chỉ đề cập đến phần Xử lý DOM. Câu hỏi của tôi là: JQuery là một thư viện. Đối với Javascript. Điều tôi thấy lạ về thư viện này trái ngược với các thư viện khác đối với các ngôn ngữ khác là trong trường hợp của JQyery, nó dường như được thiết kế để có thể sử dụng riêng và không cần phải chạm trực tiếp vào Javascript. Điều này trái ngược với giả sử Hibernate và SQL, mặc dù thư viện (hay đúng hơn là khung trong trường hợp này, nhưng tôi nghĩ rằng sự tương tự vẫn áp dụng) xử lý rất nhiều khía cạnh, bạn vẫn có thể sử dụng SQL khi sử dụng nó , ít nhất là đối với một số trường hợp rìa. Tuy nhiên, trong trường hợp JQuery & Javascript, bạn có thể làm bất cứ điều gì bạn làm với Javascript chỉ bằng cách sử dụng JQuery (hoặc ít nhất đó là cách nó có vẻ với tôi).


Theo nhận xét của Stargazer712: có, tôi đồng ý với bạn, câu hỏi ở đây là, khi bạn đặt nó "chỉ là vấn đề bạn sẽ sử dụng JavaScript như thế nào". Đó là những gì tôi thực sự muốn hỏi, nhưng tôi đã tạo ra một số công thức tồi. Đây là một tương tự khác: Ngôn ngữ biểu hiện mùa xuân. Đó là một thư viện Java. Bạn không thể sử dụng nó mà không có Java, nó dựa trên Java và thông qua tất cả những gì bạn vẫn có thể sử dụng Java. Nhưng trong thực tế những gì bạn có thể làm là thêm thư viện này vào một dự án Java và sau đó viết tất cả mã của bạn bằng ngôn ngữ biểu thức của Spring EL, điều này làm cho mã của bạn hoàn toàn không giống với Java và thậm chí nó còn thay đổi mô hình (ví dụ như bạn không còn nữa thực thi loại mạnh khi sử dụng này). Mặc dù tôi hiểu rằng JQuery chỉ là một thư viện JS, nhưng đối với tôi, dường như trong thực tế, nó có tác dụng tương tự như Spring EL với Java, tức là bạn chỉ có thể sử dụng API của nó thông qua một dự án và tránh API của JavaScript. Và tôi đã tự hỏi nếu đó là một điều tốt để làm, những gì có thể là cạm bẫy, vv

(và vâng, sau khi đọc câu trả lời của mọi người, tôi hiểu rằng:

a. câu hỏi của tôi hơi phi lý đến một điểm

b. ngay cả khi câu hỏi hoàn toàn chính xác, câu trả lời cho câu hỏi sẽ khá nhiều "không, bạn không thể chỉ sử dụng JQuery mọi lúc)


25
Không đúng khi nói "chỉ sử dụng JQuery" _ JQuery là một thư viện JavaScript.
superM

4
Không có hoặc trong vòng lặp, không có biến, không có chức năng? Tất cả đó là JavaScript.
superM

2
Với 'JavaScript cũ đơn giản', bạn có thể có nghĩa là API DOM DOM. Bạn có thể muốn kiểm tra nó và chỉnh sửa câu hỏi để tránh nhầm lẫn.
Scrwtp

4
Là tương thích trình duyệt chéo không đủ lý do?
Simon Whitehead

10
"Nó (jquery) dường như được thiết kế để có thể sử dụng riêng và không cần phải chạm trực tiếp vào Javascript". Điều đó thực sự không chính xác. jQuery đơn giản là một tập hợp các hàm JavaScript (mặc dù có các tên lạ như "$"). Một trong những phần quan trọng để hiểu jQuery là nhận thức này. Các chức năng bổ sung JUST của nó xử lý thao tác và lặp DOM.
Graham

Câu trả lời:


113

Trước hết - không thể chỉ sử dụng jQuery, tất cả các jQuery làm là thêm một đối tượng $ vào phạm vi toàn cầu của bạn, với một loạt các phương thức trong đó. Ngay cả các thư viện thao túng hơn như nguyên mẫu không phải là một thay thế cho javascript, chúng là một công cụ để giải quyết các vấn đề phổ biến.

Những lợi ích chính để thêm jQuery vào toolbelt của bạn sẽ là:

  • khả năng tương thích trình duyệt - thực hiện một số thứ như .attr () dễ dàng hơn nhiều so với các lựa chọn thay thế gốc và sẽ không vượt qua các trình duyệt.
  • đơn giản hóa các thao tác thường phức tạp - nếu bạn muốn xem phiên bản tương thích trình duyệt chéo được viết tốt của phương thức XHR, hãy xem nguồn cho $ .ajax - đối với phương pháp này, nó gần như đáng giá so với jQ.
  • Lựa chọn DOM - những điều đơn giản như sự kiện ràng buộc và chọn các yếu tố DOM có thể phức tạp và khác nhau trên mỗi trình duyệt. Không có nhiều kiến ​​thức, chúng cũng có thể dễ dàng được viết kém và làm chậm trang của bạn.
  • Truy cập vào các tính năng trong tương lai - những thứ như .indexOf và .bind là javascript gốc, nhưng chưa được nhiều trình duyệt hỗ trợ. Tuy nhiên, sử dụng các phiên bản jQuery của các phương thức này sẽ cho phép bạn hỗ trợ chúng trên trình duyệt chéo.

Javascript không còn chỉ là ngôn ngữ phía máy khách và vì jQuery quá phụ thuộc vào DOM, nên việc chuyển sang máy chủ là một ứng cử viên khủng khiếp. Tôi đặc biệt khuyên bạn nên dành thời gian để hiểu lý do tại sao bạn sử dụng jQuery (đặt câu hỏi này là bước đầu tiên tuyệt vời!) Và đánh giá khi cần thiết. jQuery có thể nguy hiểm, một vài nguy hiểm chính là:

  • chất lượng mã - jQuery có một cộng đồng lớn và đường cong học tập thấp. Đây là một cơn bão hoàn hảo cho rất nhiều plugin nguồn mở được viết kém.
  • không hiệu quả - jQuery dễ viết không hiệu quả. Ví dụ, sử dụng mỗi vòng lặp của jQuery thay vì các vòng lặp là không cần thiết và có thể có tác động hiệu suất trong một số trường hợp. Rất nhiều thông tin tốt về công cụ này tại JSPerf
  • phình to - jQuery là một thư viện khổng lồ. Phần lớn thời gian, bạn sẽ sử dụng một tập hợp nhỏ các tính năng của nó và lấy toàn bộ thư viện. Có một số lựa chọn thay thế tuyệt vời sẽ cung cấp cho bạn các tập hợp con của các tính năng, như zepto.js và underscore.js - tùy thuộc vào tình huống của bạn, bạn có thể lưu một số byte bằng cách chọn thư viện phù hợp với nhu cầu của mình.

Cuối cùng, jQuery là một thư viện cực kỳ hữu ích và hữu ích, khi được sử dụng đúng cách. Tuy nhiên, nó không phải là một thay thế cho javascript. Đây là một thư viện, giống như zepto.js , YUI , Dojo , MooToolsPrototype - một trong số đó có thể là lựa chọn tốt hơn cho dự án hiện tại của bạn.

Javascript là một ngôn ngữ bị hiểu lầm và gần đây chỉ được coi là một thứ gì đó còn hơn cả ngôn ngữ kịch bản bởi hầu hết mọi người. Tôi thực sự khuyên bạn nên đọc thêm về nó, đây là một vài nơi tốt để bắt đầu:

Chỉnh sửa 07/2014 - Tôi nhận thấy bài đăng này vẫn đang được chú ý, vì vậy tôi đã thêm một loạt các liên kết. Đây không theo thứ tự cụ thể, nhưng sẽ hữu ích.

  • Blog của Ben Alman - rất nhiều thực hành tốt nhất ở đây. Tôi không đồng ý với tất cả trong số họ, nhưng tôi học được những điều mới từ blog của anh ấy mọi lúc.
  • Code Academy - đào tạo javascript và jQuery cơ bản. Đôi khi quay trở lại cơ bản giúp.
  • Javascript Garden - một bài đăng liên quan đến các tính năng phức tạp hơn hoặc bị hiểu sai của javascript. Xin vui lòng đọc điều này theo thời gian, cho đến khi mọi thứ có ý nghĩa.
  • Bescentp - đây là những lớp đào tạo. Nếu bạn đang ở gần một, đi đến nó. Nhiều người nói và giáo viên giỏi nhất của JS dạy những điều này.
  • Blog của Paul Irish - không hoàn toàn là JS, nhưng có rất nhiều thực tiễn tốt nhất được viết về đây. Thức ăn twitter của anh ấy và Ben đều tuyệt vời để theo dõi.
  • Javascript: Các bộ phận tốt - thường được gọi là 'Kinh thánh Javascript', cuốn sách này của Douglas Crockford là một nơi tuyệt vời để bắt đầu hiểu javascript.
  • Blog của Isaac Schlueter - Isaac là người tạo ra npm và hoạt động trên lõi nút. Anh ấy viết rất nhiều về cộng đồng javascript hơn là về các quy ước về mã, nhưng nếu bạn thực sự tham gia vào js thì đó là một bài đọc tuyệt vời.
  • Javascript của Douglas Crockford - Nếu Brendan Eich là cha đẻ của javascript, Douglas là người chú thẳng thắn của javascript. Ông là tác giả của thông số JSON, kinh thánh javascript và rất nhiều bài viết tuyệt vời về những điều kỳ quặc và sự gia tăng nhanh chóng của javascript.
  • Blog của Brendan Eich - Brendan là người tạo ra javascript - anh ta viết về tất cả những thứ ngớ ngẩn trên blog của mình, và trong khi anh ta có lỗi với tư cách một người, các bài đăng javascript của anh ta rất có giá trị.
  • Blog của James Halliday (@substack) - Substack được cho là nhà phát triển node.js quan trọng nhất trong cộng đồng - với khoảng 400 mô-đun npm (và đang phát triển mỗi ngày) và triết lý hướng dẫn về các mô-đun nhỏ, giống như không trộn lẫn, mọi thứ ông viết đều đáng giá đọc.
  • Blog của Max Ogden Max Ogden là một tác giả nổi tiếng khác của node.js và rất xuất sắc trong việc viết các bài đăng trên blog dạy cho bạn một cái gì đó. Anh ấy cũng là tác giả (với những người khác mà tôi tin) về javascript cho mèo.
  • Javascript cho mèo - Đây là một hướng dẫn ngắn đưa bạn qua những điều cơ bản của javascript từ góc nhìn của một con mèo. Nếu bạn là người mới bắt đầu, hãy đọc qua điều này. Thật thú vị, và dạy trong một giờ mà nhiều cuốn sách phải mất hàng tuần để giao tiếp.
  • Blog của Nicholas Zakas Nicholas là tác giả của một vài cuốn sách javascript tuyệt vời: Lập trình hướng đối tượng trong Javascript , Javascript duy trì , Javascript chuyên nghiệp cho nhà phát triển webJavascript hiệu suất cao . Ông tập trung chủ yếu vào khách hàng, nhưng có rất nhiều thực hành tốt nhất và các mẹo thực hiện.
  • Blog của Guillermo Rauch - Guillermo là một nhà phát triển node.js nổi tiếng khác, chủ yếu nổi tiếng với Socket.io và Mongoose. Blog của anh ấy (và cuốn sách mới của anh ấy, Smashing Node.js đều là những tài nguyên tuyệt vời.

Tôi chắc chắn có nhiều tài nguyên tuyệt vời hơn mà tôi không nghĩ đến hoặc không biết, những người trả lời khác nên thoải mái thêm vào danh sách đó.


3
+1 cho nhận xét về JS không còn là ngôn ngữ phía máy khách và cách JQuery phù hợp với tất cả điều này.
Rồng Shivan

1
Lưu ý rằng tất cả các hàm là các đối tượng nhưng rất gần với mọi thứ trong JavaScript. $ được mô tả tốt hơn như là một hàm với các thuộc tính "cấp độ lớp" được ghim vào nó, ví dụ ( $.ajax) tạo ra các đối tượng trình bao bọc các phần tử dom có ​​nghĩa là làm cho các phương thức DOM nói chung ít hơn một PITA bằng cách làm cho chúng ngắn gọn hơn, có các phương thức tự động lặp qua các bộ đối tượng dom bất cứ khi nào nó có ý nghĩa và chia sẻ API phổ biến, có thể dự đoán được trên các trình duyệt (ít gặp sự cố IE <= 8).
Erik Reppen

1
Đây là một bài viết tuyệt vời, nhưng tôi muốn đưa ra một vấn đề - "Thư viện khổng lồ ... sử dụng Zepto / Underscore" - Đầu tiên, Underscore là một loại thư viện hoàn toàn khác - chủ yếu để xử lý các mảng / đối tượng - cộng với sử dụng LoDash thay vào đó, nó nhanh hơn. Thứ hai, Zepto nhỏ hơn BECAUSE, nó không bao gồm những thứ mà jQuery làm. Điều đó có thể dẫn đến các lỗi mà jQuery sẽ sửa. Cuối cùng, jQuery KHÔNG còn khổng lồ / đơn điệu nữa, khoảng 30Kb sau khi được nén và bạn có thể lưu nó bằng cách sử dụng ít hơn 1 hình ảnh. Đối với tôi, hiệu quả dev đạt được là giá trị của các byte đó.
LocalPCGuy

1
@LocalPCGuy chắc chắn một số điểm tốt. Bài đăng này là (chính xác!) 2 năm trước, và mọi thứ chắc chắn đã thay đổi trong hệ sinh thái js kể từ đó. Ví dụ, cá nhân tôi sử dụng các trình duyệt và các mô-đun nhỏ thay vì bất kỳ thư viện có tên toàn cầu nào cả. Tuy nhiên, tôi nghĩ tiền đề cơ bản vẫn đúng, đó là trong nhiều trường hợp (hầu hết?), Một thư viện bồn rửa nhà bếp hiếm khi cần thiết. Tôi đã đặt nó cho hầu hết các nhà phát triển để đảm bảo rằng họ biện minh chính xác chi phí kích thước của các thư viện trước khi quyết định sử dụng nó chỉ vì nó dễ dàng hơn là cụ thể về những gì bạn cần.
Jesse

1
Phản ứng tất cả mọi thứ, tôi có đúng không!?!?! / mỉa mai - làm thế nào về việc chọn công cụ phù hợp cho công việc @Andy và không phải lúc nào nó cũng Phản ứng. Tôi nghĩ React đang làm một số điều tốt, nhưng đừng giả vờ rằng đó là cách chữa trị tất cả cho thế giới JavaScript.
LocalPCGuy

17

Có những lợi thế, nhưng vẫn còn tranh cãi liệu chúng có thực sự vượt trội hơn những nhược điểm hay không.

Cái chính là bạn tiết kiệm băng thông và nhận được phản hồi nhanh hơn. jQuery thêm ~ 30kb vào phản hồi của bạn. Trên một số mạng (và ở một số quốc gia), điều đó có thể có nghĩa là một vài mili giây nữa. Tuy nhiên, mặt khác, bạn có thể thiết lập bộ nhớ đệm cho nó khá dễ dàng bằng máy chủ web của bạn (hoặc như Xion đã nói, sử dụng nó từ trang web của Google để nó không ảnh hưởng đến chính bạn và vẫn được lưu vào bộ nhớ cache).

Điều thứ hai là bạn có thể chỉ cần một số chức năng rất đơn giản và chỉ tải xuống và thiết lập jQuery có thể mất nhiều thời gian hơn là chỉ thực hiện những gì bạn cần.

Và cuối cùng, bạn có thể muốn tạo ra khuôn khổ của riêng bạn, chủ yếu là một ý tưởng tồi, nhưng một số người có lý do của họ.

Tuy nhiên, nếu bạn loại bỏ jQuery đơn giản chỉ vì bạn bị đe dọa bởi đường cong học tập, thì bạn nên xem xét lại. Đặc biệt là nó khá nhẹ nhàng.


Đồng ý, đặc biệt là về phần băng thông. JQuery 1.8.2 có 92Kb trong phiên bản thu nhỏ / bị xáo trộn. Đồng ý rằng đây là những lý do không mạnh mẽ để không sử dụng JQuery. Cảm ơn!
Shivan Dragon

1
@ShivanDragon: Bạn quên gzip. Điều đó làm cho nó nhỏ hơn nhiều .
ThiefMaster

@ThiefMaster: đúng vậy, cảm ơn vì đã chỉ ra.
Shivan Dragon

10
Nếu bạn sử dụng jQuery từ CDN (như Google), rất có thể người dùng sẽ tải nó trước khi truy cập các trang web khác. Do đó, tác động đến thời gian phản hồi trung bình (mặc dù không tối đa) của bạn sẽ nhỏ hơn.
Xion

1
@Phil Tại sao bạn thậm chí còn sử dụng nó?!?! jQuery chưa bao giờ và sẽ không bao giờ cần thiết. Đó là ác quỷ satan thuần túy (cùng với phần còn lại của băng đảng ma quỷ: ReactJS, Underscore, LoDash, Modernizr, CommonJS, Angular, Google Analytics, đặc biệt là AMD, v.v.). Cá nhân tôi chưa bao giờ bao gồm toàn bộ thư viện (mặc dù tôi hiếm khi trích xuất và tối ưu hóa các chức năng cụ thể tôi cần từ thư viện), tôi sẽ không bao giờ bao gồm toàn bộ thư viện và hầu như mọi trang web tôi tạo tải trên internet đều quay số dưới 11 khung (1/59 giây).
Jack Giffin

14

Theo như tôi biết thì thực sự chỉ có hai lợi thế của việc sử dụng javascript vanilla so với một thư viện như JQuery , MooTools , v.v.

  • Thư viện có tải trọng ăn băng thông. Nhưng như mọi người đã chỉ ra trong các câu trả lời khác, bạn có thể hạn chế điều này với gzipping và bộ nhớ đệm. Nếu bạn chỉ muốn một tập hợp con của jQuery, bạn có thể thực hiện với SizzleJS và với MooTools, bạn có tùy chọn chọn các bộ tính năng mà bạn muốn theo cách tương tự như Modernizr .
  • Thư viện rất lớn và mất một thời gian để tìm hiểu. Sau đó, một lần nữa, đây là một khoản đầu tư một lần cho các nhà phát triển ... và thật tuyệt vời khi bạn tiếp tục biết các thư viện javascript.
  • (THƯỞNG) Thư viện không phải là viên đạn bạc, vì vậy nếu bạn muốn phát minh lại bánh xe thì đây chắc chắn là cách để đi.

Thật đáng để chỉ ra lý do tại sao bạn muốn sử dụng thư viện javascript, trong đó có rất nhiều:

  • Bạn không cần phải viết khung riêng để hỗ trợ sự phát triển của mình. Nếu bạn tò mò về cách mọi thứ hoạt động, bạn có thể kiểm tra mã vì nó là nguồn mở.
  • Các thư viện giải quyết khả năng tương thích trình duyệt. Cả DOM và javascript đều có một số khác biệt giữa các trình duyệt. Tin tôi đi, đây là một khoảng thời gian rất lớn nếu bạn phải tự sửa lỗi.
  • Đó là tiêu chuẩn internet trên thực tế để sử dụng các thư viện javascript, hầu hết chúng đều được ghi lại rõ ràng và hầu hết các nhà phát triển web (biết javascript) đều biết cách sử dụng chúng.
  • Bạn không thực sự từ bỏ javascript khi sử dụng thư viện. Bạn vẫn cần biết Javascript với các loại, đối tượng, cách đóng hoạt động, v.v.
  • Hầu hết các thư viện đều được mô đun hóa và không mất nhiều thời gian để viết plugin hoặc sử dụng yêu cầumẫu AMD .
  • Các yếu tố chọn CSS từ DOM là một trợ giúp rất lớn.
  • (THƯỞNG) Bạn cũng có thể sử dụng chúng với CoffeeScript .

Tôi đã từng làm việc tại một cửa hàng web kiên quyết sử dụng javilla javascript vì jQuery rất lớn và đáng sợ. Quyết định này, chủ yếu chịu ảnh hưởng của một "nhà phát triển javascript" đơn độc, là nguồn gốc của nhiều lỗi trình duyệt và phát triển chậm và cố gắng xâm nhập vào cơ sở mã của anh ta là một trải nghiệm kéo tóc. Viết khuôn khổ của riêng bạn có vẻ như là một ý tưởng hay, nhưng nếu bạn muốn thuê các nhà phát triển mới thì họ không thể nhanh chóng nhảy vào và giúp đỡ. Sau đó, cũng có vấn đề về yếu tố xe buýt để xem xét.

Như tôi đã nói tôi từng làm việc ở đó ... có những đồng cỏ xanh hơn ở nơi khác. : ^)


10

Tôi tình cờ trộn việc sử dụng cả hai khá nhiều. Lý do lớn nhất cho điều này là đối với một số ứng dụng (nghĩ rằng tiện ích mở rộng chrome) bạn không cần hỗ trợ trình duyệt chéo. Điều đó có nghĩa là tôi có thể tận dụng những tiến bộ mới như css3, với những thứ như chuyển đổi có thể đơn giản hóa mã của bạn một tấn so với việc sử dụng jquery.

Ngoài ra tôi thường làm một cái gì đó tùy chỉnh. Bằng mọi cách như những người khác nói bạn không nên phát minh lại bánh xe. Nhưng khi bạn được yêu cầu thực hiện một số chức năng điên rồ, tôi thường thấy việc viết nó dễ dàng hơn nhiều sau đó để thử và hack một số plugin jquery gần nhưng không phải là một kết hợp hoàn hảo.

Tôi cũng đã làm việc với các nhà phát triển làm việc mà không có gì ngoài jquery. Và tôi phải nói rằng họ đã thỏa hiệp về chức năng thường xuyên hơn nếu không họ không thể tìm thấy một plugin jquery đã làm những gì họ muốn.

Tại một số điểm trong phát triển web, bạn sẽ được yêu cầu làm một cái gì đó không được đóng gói sẵn trong thư viện. Vì vậy, tại thời điểm đó, bạn nên chắc chắn rằng bạn hiểu ngôn ngữ cơ sở thực sự hoạt động như thế nào.

Vì vậy, TLDC : Sử dụng cả hai, bạn sẽ gặp bất lợi khi chỉ sử dụng vanilla và bạn sẽ gặp bất lợi nếu bạn không biết vanilla từ trong ra ngoài và khăng khăng luôn luôn sử dụng jquery.


3
js vanilla tinh khiết là con đường để đi!
marko

Ryan không biết rằng jQuery bí mật lạm dụng document.querySelectorAllđằng sau hậu trường.
Jack Giffin

6

Điều duy nhất tôi có thể nghĩ rằng bạn không thể làm mà không có JQuery là sử dụng các trình cắm JQuery; thậm chí sau đó, bạn có thể viết thư viện JS của riêng bạn để cung cấp đúng những gì plugin cần.

Hãy nghĩ về nó như thế này: JQuery là một thư viện Javascript nguồn mở được viết bằng Javascript; bạn có thể nhìn vào nguồn, và từ đó học cách làm bất cứ điều gì nó làm.

Bạn không thể sử dụng JQuery mà không sử dụng Javascript cũ. Bạn có thể sẽ không sử dụng document.getElementById, nhưng bạn vẫn sẽ xác định các hàm và biến theo các cách Javascript tiêu chuẩn; bạn thậm chí có thể viết một forvòng lặp tiêu chuẩn .

Lợi ích chính của việc sử dụng JQuery là khá giống với bất kỳ thư viện bên thứ 3 nào khác bằng bất kỳ ngôn ngữ nào: bạn sẽ không phải viết nhiều mã để triển khai logic cụ thể cho ứng dụng của mình.

Đừng để kích thước làm bạn sợ. Các phiên bản CDN là một ~ 33k tải về sẽ được lưu trữ bởi trình duyệt của người dùng sau khi hit trang đầu tiên.


6

Nếu bạn lo lắng về hiệu suất, bạn nên thử sử dụng vanilla js bất cứ khi nào có thể. các khung không chỉ thêm chi phí băng thông mà còn xử lý cả chi phí. Và jQuery cũng đi kèm với khả năng tương thích trình duyệt cho các trình duyệt khá cũ.

nếu bạn đang làm việc trên các ứng dụng hoặc trò chơi di động (hoặc cả hai kết hợp), trước tiên bạn cần có hiệu suất và tính hiệu quả.

jQuery và plugin có thể tăng tốc độ phát triển của bạn, nhưng đặc biệt nếu bạn dựa vào Plugin jquery của bên thứ 3, bạn nên biết những gì họ đang làm bên trong. Rất nhiều trong số đó là những ví dụ tồi về chất lượng và hiệu quả của mã.

jQuery có thể chậm hơn 2 đến 10 lần so với JavaScript gốc. Và nó có thể dễ dàng khuyến khích các nhà phát triển không thiết kế đúng giao diện của họ và dựa vào các bộ chọn jQuery quá nhiều, chậm hơn nhiều so với bản địa.


+1, tôi đồng ý với bạn làm game là một lý do chính đáng để bỏ JQuery để ủng hộ vanilla JS, vì lý do hiệu năng. Điều này khá đúng với hầu hết các ngôn ngữ khi thực hiện một trò chơi với chúng. Ví dụ, những người Google khuyến nghị trong các tài liệu Android của họ không chỉ bỏ qua các thư viện khi tạo trò chơi (bằng Java, cho Android) mà còn bỏ qua một số thực tiễn mã hóa tốt có lợi cho tốc độ.
Rồng Shivan

... Nếu bạn biết nhiều về thao tác DOM hiệu quả như những người viết jQuery, vâng.
Erik Reppen

@ErikReppen vui lòng thực sự điều tra mã nguồn thực từ "những người viết jQuery." Tôi đã bị mù gần một tháng vì những điều kinh hoàng mà tôi thấy chỉ trong 23 dòng đầu tiên.
Jack Giffin

Nhiều thứ đã thay đổi trong JQ kể từ năm 2013.
Erik Reppen
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.