代码之家  ›  专栏  ›  技术社区  ›  gnarf

Rails中的RJS/javascript约定

  •  1
  • gnarf  · 技术社区  · 17 年前

    我开始研究Rails中的整个RJS和Prototype/JQuery,有点困惑。似乎没有明确的路线来使用其中一个或另一个。

    假设我想要一个“活跃的,热门的,周”标签,就像这里的一样。当按下其中一个时,我想从我所在的CSS类中删除一个CSS类(如“active tab”),并将其添加到我单击的CSS类中。然后我还要重新加载包含这些项的DIV,并将新项放入其中。

    在纯JavaScript中,类更改似乎是最容易做到的,比如将代码放在application.js中,然后用内容更新DIV显然在RJ中是最容易的。但是什么 应该 一个做什么?

    2 回复  |  直到 10 年前
        1
  •  1
  •   Codebeef    17 年前

    如果您想让用户能够直接链接到生成的页面,那么一定要使用静态页面。使用Ajax会中断后退按钮,除非使用 Really Simple History ( which is not 100% cross browser 如此 going the JS route with your page navigation 几乎肯定会导致一些用户问题。

    也就是说,您已经讨论过的内容会很好,我认为-只要在您的RJS文件中更改一个类,那么您甚至可能会发现使用page.replace和一个分部来更新DIV内容非常有用:

    page.replace(dom_id, :partial => @page_content);
    
        2
  •  3
  •   John Topley    17 年前

    如果你对写javascript感到满意,那么一定要使用javascript。这没什么问题;你不必仅仅因为RJ存在就使用它。事实上,你可能会发现它的抽象性阻碍了它的发展。

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

    推荐文章