1

所以看起来在 RoR 上,当 Ajax(使用 form_remote_tag)返回成功代码时,也会返回 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)的情况,RJS 可以使用某种已经加载的静态 Javascript 来处理效果?

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

4

2 回答 2

1

你可以让你的代码已经在一个 javascript 文件中,或者只是在页面的头部,并让 RJS 调用引用它。返回的代码可以执行页面上已有的功能。

语法是:

page.call 'function_name', arg1, 'Second arg', 'etc...'
于 2010-05-24T19:27:18.530 回答
0

您可以 - 但不使用 RJS 或其他 RoR 辅助方法。通过 AJAX 向服务器发送请求并返回您在客户端解析的简短 JSON 或 XML 响应,而不是加载 JavaScript 代码。

特别好的模式是使用不显眼的 javascript - HTML 没有提到 JS,除了在加载时添加回调的一小部分(如何在 rails 3 中使用它)。

于 2010-05-24T12:40:08.597 回答