2008-10-22 93 views
1

我开始关注Rails中RJS和Prototype/jQuery的整个世界,并且有点困惑。似乎没有明确的使用哪一个的方法。Rails中的RJS/Javascript惯例

假设我想要一个“Active,Hot,Week”选项卡,就像这里的选项一样。当按下其中一个时,我想从我所在的那个CSS类中移除一个CSS类(如“active-tab”),并将其添加到我单击的那个类中。然后,我也想重新加载包含项目的div,并将新项目放入其中。

似乎类变化的东西在纯JavaScript中最容易做到,比如说将代码放在application.js中,然后用内容更新div显然最容易在RJS中使用。但是应该是呢?

回答

1

如果你想让用户能够直接链接到生成的页面,那么最好先去寻找一个静态页面。使用AJAX打破后退按钮,除非你使用类似Really Simple Historywhich is not 100% cross browser)的东西,所以going the JS route with your page navigation几乎肯定会导致你的一些用户问题。

也就是说,你已经讨论过的事情已经很好了,我想 - 只需要在你的RJS文件中更改类,那么你甚至可能会发现使用page.replace和部分更新div内容是有用的:

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

如果您对编写JavaScript非常适用,那么请务必使用JavaScript。这没什么错,你不必因为存在就使用RJS。事实上,你可能会发现它的抽象成为阻碍。然而,如果您更愿意编写生成JavaScript的Ruby代码,就像编写在ActiveRecord Migrations中生成SQL的Ruby代码一样,那么RJS就是适合这项工作的工具。或者你可以同时使用两个:RJS进行相当简单的事情,然后下降到JavaScript来实现更复杂的行为。使用什么感觉适合你。