2008-10-03 36 views
18

Tôi có một codebase khá lớn phụ thuộc vào MooTools v1.11 và sắp sửa chuyển sang phiên bản 1.2. Vì đây là một đại tu khá lớn, tôi đã đùa giỡn với ý tưởng chuyển đổi sang jQuery.Tôi có nên chuyển đổi từ MooTools sang jQuery không?

Bất cứ ai cũng có lời khuyên về việc nên cập nhật lên jQuery hay chỉ cần gắn bó với MooTools?

Tôi chủ yếu sử dụng MooTools cho Ajax, kéo và thả và một số hiệu ứng nhỏ.

+7

Cập nhật - chúng tôi đã không chuyển đổi và vẫn sử dụng MooTools. – Aldie

Trả lời

17

Nếu bạn đang nâng cấp thì, thì có thể đáng xem xét.

jQuery dường như đang trên đường trở thành thư viện One True Javascript (cho rằng MS và những người khác đã quyết định nắm lấy nó), vì vậy nếu đây là mã bạn định làm việc một lúc thì có thể ý tưởng tốt để chuyển đổi tại một số điểm (nếu chỉ vì sẽ có nhiều nơi hơn để nhận trợ giúp và mã plugin, vì nó rất có khả năng tiếp tục phổ biến trong một thời gian, điều này sẽ giúp đảm bảo tính linh hoạt và bảo trì lâu dài cho mã của bạn). Vì vậy, cho rằng bạn đang phải chuyển đổi nó anyway, bây giờ có thể là thời gian tốt nhất để làm điều đó.

Tôi nghĩ jQuery trở thành khung để sử dụng là một điều tốt. Nó sẽ không phải là lựa chọn của tôi (tôi cũng thích MooTools), nhưng nó chắc chắn là một đoạn mã tuyệt vời và chắc chắn phù hợp với mục đích với ít nhất là năng lực cạnh tranh của nó. Tôi rất vui khi thấy bất kỳ sự nhất quán nào và tôi sẽ chuyển mã của tôi sang jQuery vào một thời điểm nào đó.

+0

'Những người khác' là ai? – AnthonyWJones

+14

jQuery chưa bao giờ là Khung JavaScript và khó có thể trở thành nó. Nó là một thư viện. Và sẽ ở lại thư viện. Và đó là lý do tại sao nó là tốt đẹp và hấp dẫn. –

+0

Anthony: Nokia cho đến nay, nhưng tôi nghi ngờ nhiều hơn nữa sẽ làm theo bây giờ MS đã đóng đinh cờ của họ vào cực jQuery. – Dan

28

Nếu nó không bị hỏng. Đừng sửa nó.

jQuery có thể có X hoặc Y nhưng nếu mọi thứ phụ thuộc vào MooTools, bạn có thể có rất nhiều công việc để chuyển đổi từ MooTools.

Giữ MooTools nếu bạn sử dụng nó rộng rãi thông qua trang web của bạn. Tuy nhiên, nếu bạn chỉ có 2-3 trang có hiệu ứng nhỏ ... thay đổi có thể đáng giá.

+0

tôi đồng ý trừ khi bạn có một số kế hoạch cho các giai đoạn tiếp theo của dự án mà sẽ yêu cầu một thư viện khác thì bây giờ sẽ là lúc để làm điều đó. Đã thực hiện một vài công cụ cải tiến khung tôi biết nó không bao giờ dễ dàng như nó có vẻ như là – PurplePilot

1

Lý do thuyết phục duy nhất tôi có thể cung cấp cho việc di chuyển như vậy là nếu việc chuyển đổi sẽ giảm số lượng mã bạn phải duy trì và/hoặc làm cho mọi việc đơn giản hơn. Thường có rất nhiều công việc liên quan đến việc chuyển đổi như vậy, vì vậy bạn sẽ muốn có thể quay lại sau khi tất cả công việc đó được thực hiện và nói "Ừ, nó đáng giá."

3

Nó phụ thuộc vào mức độ bạn biết jQuery và thời hạn của bạn là bao nhiêu. Nếu bạn biết rõ, nó sẽ lấy ít dòng mã hơn, nghĩa là ít băng thông hơn cho khách hàng của bạn.

Ngoài ra, nếu bạn nhìn vào this site bạn có thể thấy rằng trong trình duyệt IE hàng đầu, jQuery có hiệu suất tốt hơn Mootools.

Điều đó đang được nói, nếu mọi thứ đang hoạt động trong Mootools v1.11, tại sao bạn cập nhật tập lệnh? Giống như các poster trước đó nói, nếu nó không bị hỏng ...

Nếu nó không hoạt động đúng trong Mootools v1.11, làm thế nào để bạn biết nó sẽ làm việc trong Mootools v1.2 hoặc thậm chí jQuery cho vấn đề đó? Nó sẽ là một sự xấu hổ để đặt một loạt các thời gian phát triển và hoặc có một số lỗi tương tự, hoặc giới thiệu lỗi mới vì khuôn khổ bạn sử dụng.

2

Giả sử bạn có giờ lập trình để thực hiện quá trình này.
Làm như vậy có nghĩa là bạn sẽ viết lại mã từ đầu. Điều này một lần nữa ngụ ý rằng bạn sẽ phải trải qua chu kỳ chức năng, xem xét và kiểm tra, sửa lỗi ... Điều đó nói rằng một trong những vấn đề quan trọng nhất mà các lập trình viên không có thẩm quyền với JavaScript thực hiện là hầu hết các phần mã truy cập các phần tử DOM có xu hướng tạo ra rò rỉ bộ nhớ (đó là trường hợp đường cao tốc cho hầu hết các nhà phát triển web). jQuery của thiên nhiên làm rất nhiều để giảm thiểu điều này. Hay đúng hơn là jQuery lấy đi JavaScript từ JavaScript.
thứ hai. một trong những lý do thuyết phục hơn để chuyển sang jquery là trọng số mã JavaScript của bạn sẽ giảm đáng kể. Điều này có ý nghĩa đối với một trang mã chuyên sâu phía khách hàng. Bản chất ngắn gọn của jquery sẽ cho phép bạn dễ dàng xem lại mã.
Công ty tôi làm việc (support.com) có hàng tấn mã Mootools. Trong thời gian đầu năm 2008 (sau những giờ tranh luận nóng mà tôi chống lại việc chuyển sang jQuery), chúng tôi bắt đầu chuyển sang jQuery theo cách từng bước. Tôi đã không hối hận cho đến nay.

13

Tại sao thực hiện chuyển đổi? Tôi đã chuyển đổi cơ sở mã từ 1,11 lên 1,2, và nó khá nhanh chóng và dễ dàng (và tôi đang sử dụng nó cho nhiều hơn chỉ là một vài hiệu ứng). JQuery có thể được MS chấp nhận, theo một trang web nó hoạt động tốt hơn trong IE - nhưng điều này không đúng với IE, nó hoạt động tốt như thế nào đối với trang web của bạn (IE là trình phát chính trên trang web?).

Bạn có biết jQuery không? Nếu không, bạn phải viết lại mã từ đầu và bạn sẽ viết lại mã hoàn toàn. Hoặc bạn chỉ đang cố gắng đưa ra lý do để nói với người quản lý của bạn rằng "chúng ta nên làm điều này trong jQuery" bởi vì bạn muốn tìm hiểu nó? Bạn có muốn làm điều đó không? Không.

Theo như "một khung thực sự" - đó là một tuyên bố vô lý mà chỉ người dùng thực hiện chứ không phải nhà phát triển.

+0

+1 và liên quan đến điểm mà MS đã thông qua nó, đó là một điểm mà làm cho tôi cố gắng tránh sử dụng jQuery nó như xa như tôi có thể. –

0

JQuery là một codebase nhỏ hơn có hỗ trợ rộng hơn. Nếu nó đáp ứng nhu cầu của bạn, nó có thể là một công tắc tốt. Tôi sẽ nói rằng giao dịch mà bạn cần phải quyết định là liệu nỗ lực di chuyển và đường cong học tập có xứng đáng với nỗ lực so với bộ tính năng rộng hơn, kích thước mã nhỏ hơn và mức độ phổ biến và hỗ trợ cho JQuery.

Nếu thay đổi giữa các phiên bản của MooTools thực sự dốc thì việc di chuyển cũng có thể được biện minh.

8

Chuyển đổi từ MooTools 1.1.1 thành 1.2.1 không phải là một giao dịch lớn. http://github.com/mootools/mootools-core/wikis/conversion-from-1-11-to-1-2

Thậm chí còn có lớp tương thích làm cho chức năng mã MooTools 1.1.1 trong 1.2.x. Bạn có thể phải sửa một vài thứ ở đây và ở đó, nhưng nó tương đối nhỏ.

Chuyển sang jQuery hoặc YUI hoặc DOJO hoặc bất kỳ thứ gì khác sẽ yêu cầu hoàn toàn ném ra tất cả mã bạn có và nêu rõ. Không có khách hàng nào của tôi sẽ cho phép loại rác đó.

Ngoài ra, nếu bạn đang sử dụng để mã hóa bằng cách sử dụng các lớp MooTools thích hợp, thì jQuery có thể là một cú sốc lớn đối với hệ thống của bạn. Nó không phải là jQuery buộc bạn phải viết mã không thể đọc được và không thể đọc được, nó chắc chắn có thể mã mã rất dễ đọc và duy trì trong bất kỳ ngôn ngữ nào. Nhưng jQuery không có hệ thống Lớp học tích hợp để giúp bạn.

Đặc biệt với mật mã lớn, điều quan trọng là phải giữ mã của bạn được sắp xếp hợp lý.

Tôi khá thiên vị về khóa học.

1

Bạn nên chọn lựa này dựa trên mục đích của ứng dụng của bạn.

jQuery là đáng ngạc nhiên mát mẻ cho hình ảnh động, tuy nhiên tôi cảm thấy Mootools là phức tạp hơn, vì vậy Nếu điều quan trọng là các ứng dụng và không phải là hình ảnh động dính vào Mootools

Tốc độ cũng là một chủ đề về vấn đề này. Hiện tại Mootools có hiệu suất hơi chậm nhưng tôi không chú ý đến nó cho đến khi Mootools 1.3 được phát hành.

hiệu suất Checkout các khuôn khổ mới nhất tại http://slicktest.perrohunter.com

3

Tại thời điểm này Slickspeed đang trở thành hoàn toàn không quan trọng, chọn lọc là quá nhanh anyway. Cũng chỉ để bạn biết, Sly của Herald Kirschner, một thành viên của nhóm dev Mootools vừa phát hành Sly, một công cụ chọn để đánh bại Sizzle. Những thứ về hình ảnh động là yếu tố quyết định KHÔNG chọn những mootools bị bỏ lại bởi một trong những áp phích về cơ bản là ngược lại, Mootools đã trở thành vua hoạt hình trong nhiều năm nay. Bất cứ điều gì bạn chọn nó sẽ làm việc tất cả. Mootools có một cảm giác cổ điển hơn mà tôi nghĩ rằng giữ cho tôi có tổ chức, jQuery là nhiều chức năng dựa và không mạo hiểm vào các lớp học nhiều. Một cái tăng thêm các kiểu bản địa và cái còn lại thì không, một chiến lược khác nhau nhưng đó là nó.

  • Daniel
4

Có một trang web lên về nó mô tả sự khác biệt về triết lý jqueryvsmootools.com

Tôi nghĩ rằng đó là những gì nó đi xuống đến cuối cùng. Một cách tiếp cận trung tâm DOM chức năng hoặc một phương pháp tiếp cận hướng đối tượng JavaScript.

3

Tôi khá hài lòng với Mootools. Tôi đã bị cám dỗ nhiều lần để thử jQuery vì ngày càng có nhiều người sử dụng nó trong những ngày này, nhưng bằng cách nào đó tôi vẫn không nhận được tính năng OO tốt đẹp như Mootools. Một điều mà tôi không thực sự thích về jQuery là nhận id với hàm đô la bằng cách thêm hàm băm (#). Điều này có thể có vấn đề nếu bạn muốn tạo id html bằng cách sử dụng khung công tác. Nếu tôi là bạn, chỉ cần nâng cấp lên phiên bản mới nhất của Mootools. Mootools không phải là một thư viện tồi chút nào.

2

Đối số này là nhàm chán, Mootools là O-O để mọi người tạo thành một nền O-O thích hợp đánh giá cao trí thông minh của mình nhiều hơn mọi người từ nền PHP4 hoặc HTML.

3

Trong câu hỏi của bạn, bạn đã đề cập rằng bạn đang sử dụng MooTools cho "Ajax, kéo và thả và một số hiệu ứng nhỏ". Trong khi Mootools có thể làm điều đó tốt, (và tôi có thể nhận được thổi để nói điều này) theo ý kiến ​​của tôi bạn đang không thực sự sử dụng Mootools với lý do chính đáng. Chúng tôi sử dụng Mootools trong các ứng dụng của chúng tôi, và thực sự chúng tôi không thể nghĩ về việc thay thế JQuery cho nó. Nếu mục tiêu là viết mã theo định hướng đối tượng, mã duy trì dài hạn mà các ứng dụng khác trong tổ chức của bạn có thể tận dụng, Mootools sẽ thắng tay.

Và tốc độ chọn chỉ là một tiêu chí sai để đánh giá bởi (mặc dù tôi tin rằng Mootools đang ở đó bây giờ). Hầu hết các địa điểm trong mã của chúng tôi, chúng tôi đã có tham chiếu đến các yếu tố chúng tôi muốn thay đổi. Phần lớn thời gian được dùng để thực sự thao tác DOM khi bạn có phần tử, và trong các thử nghiệm nội bộ của chúng ta (sẽ cố gắng xuất bản chúng) Mootools nhanh hơn nhiều so với JQuery trong các kiểu hoạt động thông thường mà chúng ta thực hiện. Ứng dụng của chúng tôi là loại mà chúng tôi dựa vào các điều khiển Mootools được xây dựng trước đây (do chúng tôi hoặc người khác tạo) để tạo màn hình ứng dụng bằng cách sử dụng dữ liệu đến từ các Dịch vụ Web.

4

Như những người khác đã chỉ ra, jQuery là một thư viện (để chơi đùa với DOM chủ yếu), Mootools (1.2) là một khung công tác javascript chính thức cho phép bạn tổ chức mã của bạn theo kiểu hướng đối tượng và do đó giữ cho nó dễ bảo trì.

tôi khuyên bạn nên đọc để thực sự biết những gì mỗi người thực sự là (jqueryvsmootools.com)

Và liên kết này khác, vì vậy bạn biết làm thế nào để có được tốt nhất từ ​​cả hai thế giới;):

http://ryanflorence.com/object-oriented-jquery-with-mootools-pigs-take-flight/

Cuối cùng, hãy ghi lại số điện thoại bạn cần. Khuyến nghị chung của tôi: nếu bạn cần phải lấy một số đoạn trích nhanh và fancify ứng dụng web của bạn jQuery một mình là tốt; nếu bạn định tập trung phát triển của mình trong javascript, bạn thực sự nên thử mootools: mã số sẽ là và bạn nên sẵn sàng hơn.

Để nâng cấp mã của bạn từ Mootools 1.1, bạn có thể sử dụng trình trợ giúp nâng cấp, nó sẽ giúp bạn xác định mã xung đột thông qua bảng điều khiển javascript (mootools.net/blog/2009/12/31/mootools-1-1- nâng cấp-lớp-beta /)

[Xin lỗi vì đăng chỉ có 1 liên kết hoạt động, đây là câu trả lời đầu tiên của tôi]

+0

cũng đặt anyway. –

0

bài báo đề cập đến tại trang web jqueryvsmootools đặt nó khá độc đáo:

Nếu jQuery tạo DOM cho sân chơi của bạn, MooTools đặt mục tiêu tạo JavaScript cho sân chơi của bạn

Vì vậy, cùng với câu trả lời ở đây "Nếu nó đã bị hỏng, không khắc phục được", tôi muốn nói rõ nhu cầu của bạn chứ không phải ý kiến ​​công chúng.

Do trang web của bạn đã có trong Mootools, bạn cần phải đánh giá liệu jQuery có cung cấp bất cứ thứ gì bạn cần mà MooTools không cung cấp hay không; và liệu sự phiền toái của việc chuyển đổi có ít hơn sự bận tâm của việc viết phần mở rộng.

Dường như jQuery có khả năng nhanh chóng cho phép bạn chơi với DOM, nhưng tất cả các công cụ lạ mắt và các khu vực khác của công việc (như Ngày) yêu cầu một plugin.

Điều này cũng giúp tôi trả lời câu hỏi của riêng mình!

Có một số khu vực nơi chúng không trùng lặp, thật đáng tiếc. GUIs rất dễ dàng để đặt lại với nhau trong jQuery, với các vật dụng và hoạt hình đáng yêu. MooTools, tôi thấy, hoặc có bộ với quá ít tính năng, hoặc quá nặng để sử dụng web nói chung.

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