簡體   English   中英

Rails中的RJS / Javascript約定

[英]RJS/Javascript conventions in Rails

我開始在Rails中研究RJS和Prototype / jQuery的整個世界,我有點困惑。 似乎沒有清楚的線路在哪里使用其中一個。

假設我想要一個“Active,Hot,Week”標簽,就像SO上的標簽一樣。 當按下其中一個時,我想從我所在的那個中刪除一個CSS類(比如“active-tab”)並將其添加到我點擊的那個類中。 然后我還想重新加載包含項目的div並將新項目放入其中。

似乎改變類的事情在純javascript中最容易做,比如把代碼放在application.js然后用內容更新div顯然在RJS中最簡單。 但是應該怎么做?

如果您對編寫JavaScript感到滿意,那么請務必使用JavaScript。 這沒有錯; 你不必因為它存在而使用RJS。 事實上,你可能會發現它的抽象阻礙了它。

但是,如果您更願意編寫生成JavaScript的Ruby代碼,就像編寫在ActiveRecord Migrations中生成SQL的Ruby代碼一樣,那么RJS就是該工作的正確工具。 或者你可以同時使用:RJS用於相當簡單的事情,然后下載到JavaScript以獲得更復雜的行為。 使用對你感覺合適的東西。

如果您希望為用戶提供直接鏈接到生成的頁面的能力,那么最好選擇靜態頁面。 除非你使用像Really Simple History 這樣的東西( 不是100%跨瀏覽器 ),否則使用AJAX會打破后退按鈕,因此使用頁面導航進入JS路徑幾乎肯定會導致一些用戶出現問題。

那就是說,你已經討論過的就好了,我想 - 只是在你的RJS文件中有一個類更改,然后你甚至可能會發現使用page.replace和partial更新div內容很有用:

page.replace(dom_id, :partial => @page_content);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM