Может ли RJS Ruby on Rails выдавать статический код Javascript для взаимодействия с пользователем? - PullRequest
1 голос
/ 24 мая 2010

Так выглядит на 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 или 2 КБ), когда RJS может использовать какой-то статический Javascript, уже загруженный для обработки эффекта?

Есть ли другие способы использовать статический Javascript, уже загруженный вместе со страницей? Должно ли это быть просто сырой Javascript и использовать успешный ответ Ajax Prototype для вызова статического кода Javascript, или это может быть какой-то механизм Rails, связанный с RJS?

Ответы [ 2 ]

1 голос
/ 24 мая 2010

Вы можете иметь свой код уже в файле javascript или просто в заголовке страницы, и сделать так, чтобы вызов RJS ссылался на него. Код, который возвращается, может выполнять функции, которые уже находятся на странице.

Синтаксис:

page.call 'function_name', arg1, 'Second arg', 'etc...'
0 голосов
/ 24 мая 2010

Вы можете - однако не использовать RJS или другие вспомогательные методы RoR.Отправьте запрос на сервер через AJAX и верните короткий JSON или XML-ответ, который вы анализируете на стороне клиента, а не загружаете код JavaScript.

В частности, хороший шаблон использует ненавязчивый JavaScript - HTML не упоминаетJS за исключением небольшой части, которая добавляет обратные вызовы при загрузке ( как использовать его в рельсах 3 ).

...