2010-05-15 25 views
6

Tôi khá hiệu quả trong jQuery, khi triển khai nó trong một số dự án cho công ty của tôi. Tuy nhiên, tôi thấy mình bị mất một chút khi đọc những thứ như node.js.Việc làm tốt trong jQuery có ngụ ý là tốt trong JavaScript không?

Tôi có phải quay lại vấn đề cơ bản và học ngôn ngữ JavaScript hay tôi chỉ nên gắn bó với jQuery?

Một điều nữa tôi muốn hỏi: Có mã hóa hiệu suất tăng JavaScript đơn giản so với mã hóa với jQuery không? Đối với kinh nghiệm của riêng tôi, mã hóa sự kết hợp phức tạp của hoạt ảnh phức tạp trong jQuery luôn có vẻ chiếm phần lớn bộ nhớ máy tính.

+6

Bạn ít nhất biết rằng có sự khác biệt, không giống như nhiều người khác. – Dykam

+0

cho câu hỏi thứ hai của bạn: nó là viết nhanh hơn trong javascript đồng bằng, nếu bạn biết những gì bạn đang làm. Các thư viện cố gắng tối ưu hóa tốc độ, nhưng sẽ luôn có chi phí hoạt động là trừu tượng. – galambalazs

+0

Nếu bạn giỏi Javascript thì bạn biết nó sẽ là "Tốt trong jQuery === Tốt trong Javascript". Ít nhất đó là sách giới thiệu này http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742 –

Trả lời

3

Nếu bạn chỉ quan tâm đến lập trình ứng dụng (trang web và ứng dụng) thì jQuery là quá đủ. Nếu bạn muốn phát triển một khung JavaScript hoặc thư viện, thì kiến ​​thức thành thạo về ngôn ngữ JavaScript là cần thiết.

17

Bạn nên hiểu điều gì đang xảy ra, ở một mức độ nào đó. Nó không làm tổn thương để biết những gì bên dưới, nhưng đôi khi đó không phải là tối ưu để biết tất cả mọi thứ hoặc là, ví dụ: là .innerHTML nhất quán? Không hoàn toàn, ví dụ: <select> trong IE. Điều đó có nghĩa là bạn cần biết mọi mâu thuẫn không? Không, nếu bạn cho phép jQuery xử lý nó.

Mọi người nói bạn cần phải hiểu JavaScript trước jQuery, hãy để tôi nói Tôi đồng ý, tuy nhiên có những giới hạn đó mặc dù, bạn không nhất thiết cần phải biết mỗi đứa và mâu thuẫn giữa các trình duyệt ví dụ, đó là lý do tại sao chúng tôi sử dụng lớp trừu tượng.

Với tôi, điều này không có gì khác ngoài việc nói bạn cần học lắp ráp trước C#, bạn nên biết điều gì đang xảy ra, cách bộ nhớ được tham chiếu, con trỏ là gì? Tôi nghĩ vậy, bạn có cần biết từng chi tiết không? Chắc là không. Chúng tôi sẽ không bao giờ tiến bộ nếu mỗi lập trình viên mới đi qua từng lớp học bên dưới, đây là lý do tại sao các định lý toán học xây dựng dựa trên những người khác được biết là đúng, cùng một khái niệm.

Bạn nên có thể tin tưởng lớp trừu tượng của bạn. Điều này có đúng không? không may là không, nhưng jQuery làm một công việc khá tốt ở mức nhất quán nhất có thể và luôn cải thiện. Quan trọng hơn, cộng đồng làm tốt công việc làm cho những mâu thuẫn được biết đến.


Edit: Hãy để tôi caveat tất cả mọi thứ trên bằng cách nói nếu bạn có thể học hỏi những gì bên dưới làm như vậy (điều này áp dụng cho hầu hết bất kỳ trừu tượng trong cuốn sách của tôi, không chỉ là JavaScript), nó sẽ giúp bạn chương trình tốt hơn và hiệu quả hơn. Nếu bạn biết những gì đang xảy ra dưới vỏ bọc, bạn có thể tận dụng tối ưu nó hơn.

1

jQuery chỉ là một danh sách (rất) hàm hữu ích, được viết bằng JavaScript.

Bạn chỉ đang sử dụng thư viện mà không cần biết đằng sau nó là gì và cách mọi thứ hoạt động. Hầu hết thời gian bạn sẽ chỉ cần jQuery có thể 20% -40% mã của bạn và phần còn lại sẽ là JavaScript thuần túy, vì vậy tôi khuyến khích bạn tìm hiểu các thông tin cơ bản về .Đây là địa điểm tốt để bắt đầu với:

1

Tôi một chút mơ hồ về điều này. Biết rõ thực sự sâu sắc JavaScript là một nghệ thuật tuyệt vời - tôi luôn luôn trong im lặng im lặng khi một trong những chuyên gia JavaScript sâu thường trú của chúng tôi đến bàn. Tuy nhiên, không phải ai cũng cần kiến ​​thức sâu sắc đó - nếu bạn tập trung vào xây dựng giao diện, biết một trong những khung công tác có thể là mọi thứ bạn cần, với rất ít trường hợp cạnh.

Mặt khác, việc biết ít nhất các khái niệm cơ bản về cách hoạt động của JavaScript trong mui xe chỉ có thể mang lại lợi ích. Nếu bạn cảm thấy bị cuốn hút để có một cái nhìn vào nó, tôi muốn nói làm điều đó. Bạn không cần phải trở thành tổng guru trong JavaScript cơ bản nhưng có ý tưởng cơ bản về cách xử lý dữ liệu nội bộ, cách các trình duyệt xử lý sự kiện, cách quản lý bộ nhớ, v.v.

0

jQuery là một lớp trừu tượng cho JavaScript, và vì lý do này, hầu hết thời gian bạn sẽ làm tất cả trong jQuery thay vì JavaScript thô. Tuy nhiên, nó luôn luôn là một ý tưởng tốt để có một số kiến ​​thức JavaScript ít nhất cho các bộ phận cần thiết.

Vì lý do này, nếu bạn thấy bất kỳ cuốn sách jQuery nào ở đó, hầu hết trong số chúng có một chương hoặc chỉ mục liên quan đến "Khái niệm cơ bản về JavaScript" hoặc "JavaScript cho jQuery".

0

Không nhất thiết, nó giống như nói rằng như là tốt trong Java là cùng là tốt trong mã byte vì nó đang sử dụng mã byte.

4

Rất giống với táo và cam. jQuery là thư viện tuyệt vời nhưng nó tập trung vào các thao tác DOM. Nó không giúp bạn nhiều với mã hóa chung, kế thừa nguyên mẫu, bao đóng, kiểu dữ liệu và các công cụ quan trọng khác mà bạn phải đối phó khi lập trình.

node.js không liên quan gì đến DOM, vì vậy nó rất trực quan với jQuery, không có gì lạ khi bạn gặp khó khăn trong việc hiểu nó.

Lưu ý, tuy nhiên, kiến ​​thức về JavaScript sẽ không nhất thiết có nghĩa là bạn sẽ có hiệu quả với mọi thư viện JavaScript trên mạng. Mỗi thư viện làm cho một loại superset của một ngôn ngữ, một ngôn ngữ miền cụ thể để giúp với nhiệm vụ cụ thể mà thư viện được xây dựng để giải quyết. Bạn sẽ luôn phải học rằng DSL đầu tiên có hiệu quả nhưng sẽ dễ hiểu hơn về nội bộ của bất kỳ thư viện nào nếu bạn biết JavaScript tốt.

3

Việc hoạt động tốt trong jQuery có hàm ý tốt trong JavaScript không?

No. I khuyến nghị mạnh mẽ bạn tìm hiểu các khái niệm cơ bản và sau đó một số.

jQuery chỉ là một thư viện. Trong khi sản xuất, hiểu rõ về chức năng mà thư viện cung cấp không giống với ngôn ngữ trong đó thư viện được viết.

Tôi không nói rằng bạn cần phải biết rằng tất cả các hoạt động Bitwise là converted to signed 32-bit integers in big-endian order, nhưng bạn cần phải biết về các khái niệm cốt lõi như closures, làm thế nào để đính kèm đúng cách xử lý sự kiện, và các khái niệm cơ bản của không đồng bộ/sự kiện lập trình theo định hướng.

Điều gì sẽ xảy ra nếu bạn thay đổi công việc cho một công ty sử dụng ExtJs thay vì jQuery? Hiểu các khái niệm cốt lõi của ngôn ngữ sẽ làm cho các loại chuyển tiếp này không có vấn đề.

Một điều cần lưu ý là đối với mọi thư viện, luôn có một nhiệm vụ mà nó không hỗ trợ. Phụ thuộc vào một thư viện để luôn luôn làm việc nâng hạng nặng cuối cùng sẽ cắn bạn trong các phần sau.

Không mã hóa hiệu suất tăng JavaScript đơn giản so với mã hóa với jQuery?

Thư viện thường hướng đến mục tiêu chung nhất có thể cho khu vực sử dụng mà chúng đang nhắm mục tiêu. Bởi vì điều này, sự thiếu hiệu quả có thể xảy ra trong một số kịch bản có thể được tối ưu hóa bên ngoài thư viện.

Tất cả phụ thuộc vào cách bạn giỏi về JavaScript, lựa chọn thuật toán/tạo/phân tích và lập trình nói chung. Khi bạn bắt đầu liên quan đến bản thân với hiệu suất cao nhất có thể, bạn thực sự cần có khả năng nhận được thông tin chi tiết hơn về ngôn ngữ. "Tốt" ở jQuery, hoặc bất kỳ thư viện nào cho vấn đề đó, có thể sẽ không giúp bạn với điều này (trừ khi bạn đang tìm kiếm và thực hiện các kỹ thuật của họ theo cách cụ thể cho kịch bản của bạn).

Các vấn đề liên quan