RJS или Javascript? - PullRequest
       20

RJS или Javascript?

5 голосов
/ 20 декабря 2009

Я использовал RJS в прошлом для проектов RoR и чувствовал себя ужасно ограниченным тем, что он мог сделать. Однако, используя только Javascript, вы чувствуете себя ужасно и хакерски. Это особенно верно при написании Javascript, который манипулирует Rails, автоматически генерируемым из имен переменных. Я не видел много разговоров о RJS в блогосфере в последнее время. RJS используется в новых проектах RoR, или люди решили, что это не эффективно? Он все еще активно развивается и расширяется его функциональный охват? Буду признателен за понимание текущего положения вещей.

Итак, кто использует RJS (и как это работает для вас), а кто использует javascript?

Ответы [ 5 ]

4 голосов
/ 20 декабря 2009

Мне нравится использовать RJS для простых задач, таких как:

page["post_#{@post.id}"].replace :partial => @post
page["post_#{@post.id}"].highlight

Да, вы можете сделать это напрямую с помощью функции link_to_remote, но это просто загромождает ваш взгляд с помощью кода или с update_page в контроллере, но это ужасно ... rjs позволяет вам писать более понятно код, который не связан с любой библиотекой javascript (поскольку существуют такие вещи, как jrails, или вы можете просто переопределить методы Rails самостоятельно.)

Если у вас есть действительно сложная функция javascript для вашего приложения, вам, вероятно, лучше будет написать javascript самостоятельно, поскольку в этот момент вам не захочется полагаться на абстракции, которые предоставляет Rails.

4 голосов
/ 20 декабря 2009

Я рекомендую писать прямо на JavaScript. Я считаю, что - да - RJS выходит из моды. Одной из причин этого является популярность библиотеки JQuery. Другая модель - это RJS - она ​​представляет собой рубиновую оболочку вокруг javascript, и поэтому для любой библиотеки javascript, которую вам нужно использовать, вам потребуется соответствующая библиотека-оболочка ruby, что означает более тяжелую работу, которую придется выполнить (и другой драгоценный камень, от которого вам придется зависеть). Кроме того, хотя идея сделать запрос и получить обратно исполняемый javascript хороша, я считаю, что многим не нравится этот стиль или, по крайней мере, он не подходит для определенных ситуаций. Я лично выучил javascript и мне очень понравился, и я рекомендую вам попробовать.

2 голосов
/ 20 декабря 2009

По RJS, я полагаю, вы имеете в виду шаблоны RJS. Вся идея заключается в том, что вы генерируете JavaScript, который будет запускаться в функции JS eval в браузере как возврат AJAX. Как именно вы «чувствовали себя ужасно стесненными тем, что он мог сделать»? Вы можете смешивать Ruby и JS в файлах RJS различными способами, и это не более ограничивает, чем другие форматы типа ERB. Это очень мощный способ заставить вызовы AJAX делать больше, чем просто обновлять один <div> (они могут даже обновить два <div>).

У меня такое чувство, что вы действительно хотите спросить об использовании JavaScript / Prototype / Scriptaculous Helpers. Это так?

1 голос
/ 20 декабря 2009

Мне лично не нравятся js, генерируемые помощниками, поэтому я обычно не использую их. Однако бывают случаи, когда они весьма удобны.

Существует также замена Jquery, Jrails , если вы не являетесь поклонником Prototype.

Но я должен согласиться с НРД. Почему вы позволяете тому, что делают другие, в конечном итоге вести ваш путь. Если вам не нравится, как работают помощники или они не делают этого для вашего проекта, не используйте их. Или, если чего-то не хватает, напишите свое. И, возможно, в этом вы можете зажечь интерес.

Что касается времени инвестирования , то это знание.

1 голос
/ 20 декабря 2009

RJS никогда не предназначался для полной замены JavaScript, и вы не должны решать, какой инструмент подходит для вашей работы, исходя из того, что, по вашему мнению, вы видели в блогосфере, когда какой-то другой ребенок делал это.

...