2009-12-20 17 views
5

Tôi đã sử dụng RJS trong quá khứ cho các dự án RoR và cảm thấy bị ràng buộc khủng khiếp bởi những gì nó có thể làm. Tuy nhiên, sử dụng Javascript một mình cảm thấy/cảm thấy xấu xí và hack-y. Điều này đặc biệt đúng khi viết Javascript điều khiển Rails được tạo tự động từ các tên biến. Gần đây tôi chưa từng nói nhiều về RJS trong thế giới blog. RJS có được sử dụng trong các dự án RoR mới hay có người quyết định rằng nó không hiệu quả? Nó vẫn đang được tích cực phát triển và mở rộng chức năng của nó? Tôi đánh giá cao một số hiểu biết sâu sắc về tình trạng hiện tại của công việc.RJS hoặc Javascript?

Vì vậy, ai đang sử dụng RJS (và cách thức hoạt động của bạn) và ai đang sử dụng javascript?

Trả lời

4

Tôi khuyên bạn nên viết javascript thẳng. Tôi tin rằng - vâng - RJS sẽ mất phong cách. Một lý do cho điều này là sự phổ biến của thư viện jQuery gợi cảm. Một mô hình khác của RJS - trong đó nó là một gói ruby ​​xung quanh javascript, và vì vậy đối với bất kỳ thư viện javascript nào bạn cần sử dụng, bạn sẽ cần một thư viện ruby ​​wrapper tương ứng, có nghĩa là công việc của người khác sẽ phải làm (và đá quý khác bạn sẽ phải phụ thuộc vào). Ngoài ra, mặc dù ý tưởng thực hiện yêu cầu và nhận lại JavaScript thực thi là tốt đẹp, tôi tin rằng có rất nhiều người không thích kiểu này, hoặc ít nhất không nghĩ rằng nó phù hợp với một số tình huống nhất định. Cá nhân tôi đã học javascript và đã đến để thích nó rất nhiều, và tôi khuyên bạn nên thử.

+0

Đây là loại hoặc câu trả lời tôi đang tìm kiếm. Có bất kỳ cuộc nói chuyện rõ ràng nào về tương lai của RJS mà tôi có thể nhìn thấy không? Nếu không, tại sao bạn cảm thấy rằng nó đi ra khỏi phong cách? Tôi biết JS, đó là lý do tại sao tôi đang tranh luận để sử dụng cho dự án tiếp theo của tôi. Tôi có thể tìm ra những căn cứ kỹ thuật và dễ phát triển để sử dụng, nhưng tôi lo ngại về tương lai của RJS. –

1

RJS không bao giờ có ý định thay thế bằng JavaScript, và bạn không nên quyết định công cụ nào phù hợp với công việc dựa trên những gì bạn nghĩ bạn thấy một số đứa trẻ khác đang làm trên thế giới blog.

+0

Không đồng ý. Nếu mọi người không quan tâm đến RJS, nó sẽ không tiếp tục được hỗ trợ, phát triển, làm việc và nhìn chung. Tôi không muốn tiếp tục đầu tư thời gian để làm việc với nó nếu mọi người không còn sử dụng nó nữa. Cộng đồng RJS là một tập hợp con của cộng đồng JS nên thật khó để tìm ra cách để làm những việc trong RJS so với JS. Nếu RJS * đi ra khỏi phong cách * thì tôi có thể tưởng tượng rằng tình hình trở nên tồi tệ hơn. Vì vậy, yeah, tôi muốn biết những gì người khác đang làm và nơi họ đang đặt thời gian và năng lượng của họ vào. –

+0

Tôi nghĩ rằng những gì @NSD là tring để nói là bạn không nên chọn để sử dụng một công nghệ cụ thể chỉ vì những người khác đang sử dụng nó; tuy nhiên, điều đó không loại trừ * không sử dụng nó * bởi vì những người khác không sử dụng nó. –

+0

Phải, nhưng tôi đã hỏi để tìm hiểu xem mọi người có đang không sử dụng nó nữa không. –

2

Bằng RJS, tôi cho rằng bạn đang đề cập đến các mẫu RJS. Khái niệm toàn bộ là bạn đang tạo ra JavaScript sẽ được chạy trong một hàm JS eval trong trình duyệt như là một trả về AJAX. Làm thế nào chính xác là nó mà bạn "cảm thấy khủng khiếp hạn chế bởi những gì nó có thể làm"? Bạn có thể trộn Ruby và JS trong các tập tin RJS theo nhiều cách khác nhau, và nó không có nhiều ràng buộc hơn các định dạng kiểu ERB khác. Đó là một cách rất mạnh mẽ để thực hiện cuộc gọi AJAX làm nhiều hơn là cập nhật một đơn <div> (thậm chí họ có thể cập nhật hai <div> s).

Tôi có cảm giác bạn thực sự muốn hỏi về cách sử dụng Trình trợ giúp JavaScript/Prototype/Scriptaculous. Là vậy sao?

+1

Tôi đồng ý với Matt. Tôi nghĩ rằng lý do RJS được cho là bị giảm bởi các bên là tạo JS cho thư viện Prototype trừ khi bạn sử dụng một plugin ghi đè các phương thức trợ giúp và rất nhiều nhà phát triển đang chọn JQuery. Nếu bạn sử dụng Prototype, bỏ qua RJS hoàn toàn là IMO gây ảo giác. –

1

Cá nhân tôi không thích js được tạo bởi người trợ giúp, vì vậy tôi thường chọn không sử dụng chúng. Tuy nhiên, có những lúc chúng khá thuận tiện.

Ngoài ra còn có sự thay thế Jquery, Jrails, nếu bạn không phải là người hâm mộ Prototype.

Nhưng, tôi phải đồng ý với NSD. Tại sao bạn lại để những gì người khác làm cuối cùng dẫn dắt con đường của bạn. Nếu bạn không thích cách người trợ giúp làm việc hoặc họ không làm việc đó cho dự án của bạn, đừng sử dụng chúng. Hoặc nếu nó thiếu một cái gì đó, viết của riêng bạn. Và có lẽ trong đó, bạn có thể đốt cháy một số vấn đề.

Đối với thời gian đầu tư, đó là kiến ​​thức.

4

Tôi thích sử dụng RJS cho các nhiệm vụ đơn giản, như:

page["post_#{@post.id}"].replace :partial => @post 
page["post_#{@post.id}"].highlight 

Có, bạn có thể làm điều này trực tiếp với các chức năng link_to_remote, nhưng điều đó chỉ clutters lên nhìn bạn với mã, hoặc với một update_page trong bộ điều khiển , nhưng đó là xấu xí .. rjs cho phép bạn viết mã dễ hiểu hơn, không bị tách rời khỏi bất kỳ thư viện javascript nào (vì có những thứ như jrails ngoài kia, hoặc bạn chỉ có thể ghi đè lên các phương thức của Rails).)

Nếu bạn có một hàm javascript thực sự phức tạp cho ứng dụng của mình, bạn có thể sẽ được phục vụ tốt hơn bằng cách tự viết javascript, vì tại thời điểm đó, bạn sẽ không muốn dựa vào các trừu tượng mà Rails cung cấp.

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