Что определяет RJS? путать с тем, что я прочитал

Я немного растерялся из-за того, что я прочитал о stackru относительно RJS.

Многие утверждают, что Rails 3.0 отбросил RJS для UJS . Это утверждение сбивает меня с толку, потому что, насколько я понимаю, различие между навязчивым (встроенным) и ненавязчивым JavaScript не определяет сам RJS.

Разве RJS - это не использование шаблонов JavaScript и использование кода возврата вызовов AJAX, который, в свою очередь, выполняется на стороне клиента, в отличие от не-RJS-маршрута, когда приложение возвращает JSON или XML, то есть только данные, и имея клиента сторона JavaScript справится с этим?

Если то, что я сказал, верно, Rails 3.0 поддерживает RJS, и вы можете использовать UJS с RJS, хотя я считаю, что поддержка в 3.1 будет разделена на дополнительные гемы.

Пример:- UJS используется с index.erb и application.js, но данные возвращаются в index.js.erb, поэтому UJS используется с RJS

2 ответа

Решение

Вы правы, это иногда сбивает с толку. Моя точка зрения такова:

  • UJS появился с Rails 3

  • RJS будет извлечен как драгоценный камень в Rails 3.1

  • UJS и RJS имеют только JS в общем

RJS - это просто другой тип шаблона представления. Это позволяет вам писать Ruby вместо JavaScript. Например, update.js.erb используя jQuery:

$("#data").html("<%= escape_javascript render(:partial => 'data') %>");
$("#loading_indicator").hide();

а также update.rjs:

page.replace_html 'data', :partial => 'data'
page.hide 'loading_indicator'

RJS зависит от Prototype и Scriptaculous (ссылки на документацию по Ruby для помощников). Смотрите этот вопрос / ответ для более подробной информации о RJS и Rails 3.1.

Другие вопросы по тегам