jQuery so với javascript? [đóng cửa]


76

Gần đây tôi tình cờ gặp một số diễn đàn javascript (thật đáng buồn, liên kết bị mất ở đâu đó trong vũ trụ), nơi bạn có thể cảm thấy thực sự ghét jQuery vì không ... tốt chút nào?

Hầu hết các lập luận dường như có lý.

Bây giờ, tôi thực sự thích jQuery, chủ yếu là cho phép tôi tập trung vào những thứ tôi muốn làm thay vì sự mâu thuẫn của trình duyệt và nó thực sự làm cho AJAXing với các hiệu ứng thú vị (hoặc bị lạm dụng quá mức ?).

Nhưng nếu thực sự là thứ gì đó mục nát trong lõi của jQuery, tôi không muốn dựa vào nó như cách mà tôi thực sự ... dựa vào nó.

Tôi không muốn bắt đầu một cuộc tranh luận khác về việc khung nào là tốt nhất ... nhưng ... Khung nào là tốt nhất (đùa) ? Như một trường hợp sử dụng, hãy nghĩ về web vừa và nhỏ và đó là quản trị.

Tôi chỉ đang cố gắng tìm ra, nếu những thứ trong một số khuôn khổ hoặc javascript thuần túy với ít chức năng của tôi thực sự tạo ra sự khác biệt.

Biên tập:

Tôi thực sự đã cố gắng thảo luận khách quan bình thường về ưu và nhược điểm của:

  1. Sử dụng một khuôn khổ trên javascript thuần túy và
  2. jQuery so với những người khác,

Vì jQuery dường như dễ làm việc nhất với đường cong học tập nhanh nhất. Tuy nhiên, một số người chỉ không hiểu nó và nghĩ rằng tôi đang bắt đầu một ngọn lửa khác (những gì tôi không phải). Tôi thực sự đang bỏ phiếu để mở lại câu hỏi này.

Ngoài ra, tôi thực sự quan tâm đến:

  • JQuery có phụ thuộc nhiều vào khả năng đánh hơi trình duyệt không? Đó có thể là một vấn đề tiềm ẩn trong tương lai? Tại sao?
  • Tôi đã tìm thấy rất nhiều công cụ chọn JS, có thư viện AJAX và FX nào không?
  • Có lý do nào (ngoài việc đánh hơi trình duyệt và "ghét" cá nhân John Resig) tại sao jQuery lại sai?

jQuery thực sự, như được sử dụng nhiều nhất, cũng là viết tắt của các khung công tác khác.


1
"Tôi không muốn bắt đầu thêm một cuộc tranh cãi mà khuôn khổ là tốt nhất", những gì .. "Những khuôn khổ là tốt nhất.?"?
Filip Ekberg

1
@Jimmy - có nhưng chủ yếu là bạn luôn nhìn thấy một điểm - trên các trang web thân thiện với jQuery jQuery ftw, trên một số diễn đàn js jQuery sucks, bạn không bao giờ nhìn thấy mặt so sánh cạnh nhau
Adam Nụ hôn

3
Đó là chủ quan, mang tính tranh luận và nên có, nếu không muốn nói là đóng cửa, wiki cộng sản.
Filip Ekberg

1
@Filip nói rõ điều gì đó và chia buồn với nó ... nó có nghĩa là một trò đùa ... đừng bận tâm>.<
Adam Kiss

2
@Adam Tôi đã đọc nó. Tôi hiểu rằng bạn không cố gắng bắt đầu một cuộc chiến tranh ngọn lửa. Đọc những gì tôi đã viết. Tôi không nói là bạn. Tôi đang nói điều này là thừakhông cần thiết .
Jimmy Cuadra

Câu trả lời:


43

Đó là tất cả về hiệu suất và tốc độ phát triển. Tất nhiên, nếu bạn là một lập trình viên giỏi và thiết kế thứ gì đó thực sự phù hợp với nhu cầu của bạn, bạn có thể đạt được hiệu suất tốt hơn so với việc bạn đã sử dụng Javascript framework. Nhưng bạn có thời gian để làm tất cả một mình?

Ý kiến ​​cá nhân của tôi là Javascript cực kỳ hữu ích và được sử dụng quá mức, nhưng nếu bạn thực sự cần nó, một khuôn khổ là cách để đi.

Bây giờ đến sự lựa chọn của khuôn khổ. Để biết giá trị của các điểm chuẩn, bạn có thể tìm thấy một điểm chuẩn tại http://ejohn.org/files/142/ . Nó cũng phụ thuộc vào những plugin nào có sẵn và bạn định làm gì với chúng. Tôi bắt đầu sử dụng jQuery vì nó dường như được duy trì và có tính năng tốt, mặc dù nó không phải là nhanh nhất tại thời điểm đó. Tôi không hối hận nhưng tôi đã không thử nghiệm bất cứ điều gì khác kể từ đó.


cũng chính xác thoughs tôi (bây giờ), nhưng tuyên bố về cách jQuery đang làm tất cả những gì sai trong lõi "corest" và đánh giá các trình duyệt và các công cụ ... đã cho tôi bối rối
Adam Nụ hôn

1
jQuery không phải là một khuôn khổ, nó là một thư viện tiện ích.
Vladimir Kornea

Bây giờ, có thể. Gần 10 năm trước, mọi thứ có một chút khác biệt :)
Xr.

32

Cá nhân tôi nghĩ bạn nên học cách khó trước. Nó sẽ khiến bạn trở thành một lập trình viên giỏi hơn và bạn sẽ có thể giải quyết vấn đề có một không hai khi nó xuất hiện. Sau khi bạn có thể làm điều đó với JavaScript thuần túy thì việc sử dụng jQuery để tăng tốc độ phát triển chỉ là một phần thưởng bổ sung.

Nếu bạn có thể làm theo cách khó thì bạn có thể làm theo cách dễ dàng, nó không hoạt động theo cách khác. Điều đó áp dụng cho bất kỳ mô hình lập trình nào.


11

Jquery giống như bất kỳ khung JavaScript tốt nào khác cung cấp cho bạn chức năng độc lập với nền tảng trình duyệt bao gồm tất cả những điều phức tạp mà bạn có thể không quan tâm hoặc không muốn quan tâm.

Tôi nghĩ rằng sử dụng một khung công tác sẽ tốt hơn thay vì sử dụng JavaScript thuần túy và làm tất cả mọi thứ từ đầu, trừ khi mức sử dụng của bạn rất hạn chế.

Tôi chắc chắn khuyên bạn nên sử dụng JQuery!

Cảm ơn


Tôi đã làm việc với jQuery, tôi quan tâm nhiều hơn đến việc tranh luận tại sao nó tốt hơn (gạt "tính dễ sử dụng" sang một bên)
Adam Kiss

1
Vì sự sang trọng của nó và các tính năng mới liên tục, ít nhất tôi chưa thấy bất kỳ khung JavaScript nào có cộng đồng người dùng và hỗ trợ đang phát triển nhanh chóng này. Cảm ơn
Mahesh Velaga

3
@Greg: Tôi không hiểu bạn nhận xét. Tôi đã sử dụng Elegancesai ngữ cảnh?
Mahesh Velaga

11

"Tôi thực sự đã cố gắng thảo luận mục tiêu bình thường về ưu và nhược điểm của 1., bằng cách sử dụng framework thay vì javascript thuần và 2., jquery so với những thứ khác, vì jQuery dường như dễ làm việc nhất với đường cong học tập nhanh nhất."

Sử dụng bất kỳ khung công tác nào vì bạn không muốn thực sự học ngôn ngữ cơ bản là hoàn toàn sai lầm không chỉ đối với JavaScript mà đối với bất kỳ ngôn ngữ lập trình nào khác.

"Có lý do nào (ngoài việc đánh hơi trình duyệt và" thù ghét "cá nhân đối với John Resig) tại sao jQuery lại sai ?"

Phần lớn sự căm ghét nó đến từ chủ nghĩa fanboy phóng đại gây ô nhiễm các diễn đàn với "sử dụng jQuery" như một câu trả lời cho mọi câu hỏi JavaScript và việc lạm dụng tạo ra mã trong đó các câu lệnh đơn giản như khai báo một biến được thực hiện thông qua các lệnh gọi thư viện.

Tuy nhiên, cũng có một số vấn đề kỹ thuật hợp pháp như cảm giác tội lỗi chung khi sản xuất mã không đọc được và chi phí. Tất nhiên hai điều đó trở nên trầm trọng hơn do sự thiếu thành thạo của nhà phát triển hơn là bản thân thư viện.


8
  • JQuery có phụ thuộc nhiều vào khả năng đánh hơi trình duyệt không? Đó có thể là vấn đề tiềm ẩn trong tương lai? Tại sao?

Không - có phương pháp $ .browser, nhưng nó không được dùng nữa và không được sử dụng trong lõi.

  • Tôi đã tìm thấy rất nhiều công cụ chọn JS, có thư viện AJAX và FX nào không?

Tải trọng. jQuery thường được chọn vì nó thực hiện tốt AJAX và các hình ảnh động, đồng thời có thể mở rộng dễ dàng. jQuery không sử dụng công cụ chọn của riêng mình, mà sử dụng Sizzle , một công cụ chọn cực kỳ nhanh.

  • Có lý do nào (ngoài việc đánh hơi trình duyệt và "ghét" cá nhân John Resig) tại sao jQuery lại sai?

Không - nó nhanh chóng, tương đối nhỏ và dễ mở rộng.

Đối với cá nhân tôi, thật tuyệt khi biết rằng vì các trình duyệt bao gồm nhiều thứ hơn (ví dụ như API danh sách) mà jQuery sẽ cập nhật để bao gồm nó, có nghĩa là mã của tôi luôn chạy nhanh nhất có thể.

Đọc qua nguồn nếu bạn quan tâm, http://code.jquery.com/jquery-1.4.3.js - bạn sẽ thấy rằng các tính năng được thêm vào dựa trên trường hợp tốt nhất trước tiên và dần dần được hỗ trợ cho các trình duyệt cũ - cho ví dụ, một phần của phương thức parseJSON từ 1.4.3:

return window.JSON && window.JSON.parse ?
    window.JSON.parse( data ) :
    (new Function("return " + data))();

Như bạn có thể thấy, nếu window.JSON tồn tại, trình duyệt sử dụng trình phân tích cú pháp JSON gốc, nếu không, thì trình duyệt sẽ tránh sử dụng eval (vì nếu không các hàm min sẽ không thu nhỏ bit này) và thiết lập một hàm trả về dữ liệu. Ý tưởng giả định các kỹ thuật hiện đại trước, sau đó chuyển sang các phương pháp cũ hơn được sử dụng xuyên suốt, nghĩa là các trình duyệt mới có thể sử dụng tất cả các tính năng khác nhau mà không phải hy sinh khả năng tương thích cũ.


Hoạt ảnh có jquery có thể không phải là lựa chọn tốt nhất do lo ngại về hiệu suất. css-tricks.com/myth-busting-css-animations-vs-javascript Hãy xem GSAP như một gói tốt.
gdbj

5

Jquery VS javascript, tôi hoàn toàn chống lại OP trong câu hỏi này. So sánh xảy ra với hai điều tương tự, không phải trong trường hợp như vậy.

Jquery là Javascript. Thư viện javascript để giảm mã hóa mơ hồ, tập hợp các hàm javascript thường được sử dụng đã được chứng minh là giúp viết mã hiệu quả và nhanh chóng.

Javascript là nguồn, các tập lệnh thực tế mà trình duyệt phản hồi.


2
Theo tôi, ai muốn hiểu câu hỏi thì hãy hiểu nó. Điểm được nêu ở đây là liệu jQuery có đáng để triển khai hay không, hay liệu một lập trình viên có nên sử dụng JavaScript sạch hay không.
Bunkai.Satori

@ Bunkai.Satori, Cơ bản là câu hỏi về câu trả lời kiểu jQuery vs Javascript.
Starx

@ Tiberiu-IonuțStan, Hoặc nhiều dòng mã cho một hành động đơn giản.
Starx

1
Theo tôi, vấn đề trọng tâm của JQuery là mặc dù nó đã tăng tính dễ phát triển, nhưng vẫn có một số lượng lớn người nghĩ rằng JQuery là một ngôn ngữ riêng biệt, một sự thay thế cho Javascript. Do đó, tiêu đề câu hỏi giật mắt ... và do đó, rất nhiều mã được viết kém mà không hiểu rõ cách hoạt động của DOM / JQuery / Javascript.
Katana314

1
@ Katana314, tôi đồng ý. Một thư viện phổ biến như jQuery là một quan niệm sai lầm về một ngôn ngữ. Đáng buồn thay, ngay cả trong đơn xin việc bạn cũng thấy, chuyên gia JavaScript và jQuery. Một ví dụ khác là Ruby on Rails rất gần với một ngoại lệ nhưng vẫn không phải là một ngôn ngữ khác. Ít nhất thì đó là những sai lầm phổ biến của tân binh. Khi mã của họ lên cấp doanh nghiệp, họ sẽ học cách viết mã bằng javascript sạch.
Starx
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.