RJS или JavaScript?

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

Так, кто использует RJS (и как он удается для Вас), и кто использует JavaScript?

5
задан Ron Gejman 20 December 2009 в 05:55
поделиться

5 ответов

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

4
ответ дан 13 December 2019 в 05:36
поделиться

Мне нравится использовать 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
ответ дан 13 December 2019 в 05:36
поделиться

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

(они могут даже обновлять два
s).

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

2
ответ дан 13 December 2019 в 05:36
поделиться

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

1
ответ дан 13 December 2019 в 05:36
поделиться

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

Существует также замена JQuery, Jrails , если вы не фанат Prototype.

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

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

не использовать их. Или, если чего-то не хватает, напишите свое. И, возможно, в этом можно зажечь некоторый интерес.

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

не использовать их. Или, если чего-то не хватает, напишите свое. И, возможно, в этом можно зажечь некоторый интерес.

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

1
ответ дан 13 December 2019 в 05:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: