1

我开始研究 Rails 中的 RJS 和 Prototype/jQuery 的整个世界,我有点困惑。似乎没有明确的界限在哪里使用一个或另一个。

假设我想要 SO 上的“活动、热门、周”标签之一。当按下其中一个时,我想从我所在的那个中删除一个 CSS 类(如“active-tab”)并将其添加到我单击的那个中。然后我还想重新加载包含项目的 div 并将新项目放入其中。

似乎在纯 javascript 中更改类最容易,比如将代码放在 application.js 中,然后用内容更新 div 显然在 RJS 中是最简单的。但是一个人应该怎么做?

4

2 回答 2

3

如果您对编写 JavaScript 感到满意,那么请务必使用 JavaScript。这没有什么问题;您不必仅仅因为它存在就使用 RJS。事实上,您可能会发现它的抽象会妨碍您。

但是,如果您更愿意编写生成 JavaScript 的 Ruby 代码,就像在 ActiveRecord 迁移中编写生成 SQL 的 Ruby 代码一样,那么 RJS 是适合这项工作的工具。或者您可以同时使用两者:RJS 用于相当简单的事情,然后下拉到 JavaScript 用于更复杂的行为。使用你觉得合适的东西。

于 2008-10-22T11:27:39.477 回答
1

如果您想让用户能够直接链接到生成的页面,那么一定要选择静态页面。使用 AJAX 会破坏后退按钮,除非您使用像真正简单的历史不是 100% 跨浏览器)这样的东西,所以在页面导航中使用 JS 路由几乎肯定会导致一些用户问题。

也就是说,我认为您已经讨论过的内容很好 - 只需在您的 RJS 文件中更改类,然后您甚至可能会发现使用 page.replace 和部分更新 div 内容很有用:

page.replace(dom_id, :partial => @page_content);
于 2008-10-22T11:18:31.027 回答