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

RubyonRails的RJ能提供静态的javascript代码来处理用户交互吗?

  •  1
  • nonopolarity  · 技术社区  · 14 年前

    所以在ror中,当ajax(使用form_remote_标记)返回成功代码时,也会返回javascript来处理视觉效果。(这是RJS机制)

    使用fiddler,我确实看到以下响应:

    try {
    Element.update("vote_score", "Score 58");
    $("vote_score").visualEffect("highlight");
    } catch (e) { alert('RJS error:\n\n' + e.toString()); alert('Element.update(\"vote_score\", \"Score 58\");\n$(\"vote_score\").visualEffect(\"highlight\");'); throw e }
    

    如果代码很大(比如1或2K),RJ是否可以使用已经加载的某种静态JavaScript来处理这种效果?

    是否有其他方法可以使用已经随页面加载的静态javascript?它必须仅仅是原始的javascript并使用原型的Ajax成功响应来调用静态的javascript代码,还是可以是一些与RJ相关的Rails机制?

    2 回复  |  直到 14 年前
        1
  •  1
  •   Tilendor    14 年前

    您可以将代码已经放在一个javascript文件中,或者只是放在页面的头部,并让rjs调用引用它。返回的代码可以执行页面上已有的函数。

    语法是:

    page.call 'function_name', arg1, 'Second arg', 'etc...'
    
        2
  •  0
  •   Maja Piechotka    14 年前

    但是,您不能使用rjs或其他ror helper方法。通过Ajax将请求发送到服务器,并返回简短的JSON或XML响应,这些响应是在客户端解析的,而不是加载JavaScript代码。

    特别漂亮的图案正在使用 unobtrusive javascript -HTML没有提到JS,除了在加载时添加回调的小部分。( how to use it in rails 3 )