Почему вспомогательные методы Rails предотвращают «ненавязчивый JavaScript»? - PullRequest
2 голосов
/ 25 октября 2009

Я слышал, как Райан Бейтс сказал, что вспомогательные методы Rails JavaScript предотвращают "ненавязчивый JavaScript"

Это правильно, и, если да, может кто-нибудь объяснить, почему?

Ответы [ 2 ]

3 голосов
/ 25 октября 2009

Ненавязчивый просто означает «Не смешивайте свой HTML с вашим поведением JavaScript». Другой способ сказать это: «Не меняйте свой HTML только потому, что вы хотите использовать JavaScript». Вспомогательные методы rails javascript делают это неким скрытым способом.

Скажем, вы вообще не использовали JavaScript. Если вам нужна форма HTML, вы бы использовали form_for и имели бы обычную форму. Теперь предположим, что вы хотите добавить JavaScript, чтобы ваша форма отправляла запрос AJAX вместо обычного запроса HttpRequest. У вас есть два способа сделать это.

  1. Вы можете использовать вспомогательный метод remote_form_for
  2. Вы можете использовать что-то вроде jQuery для привязки функции к вызову submit, который отправляет вашу форму через AJAX.

Первый метод навязчив. Вы меняете свою разметку (посмотрите на сгенерированный код). Второй метод ненавязчивый. Используя jQuery и прикрепляя поведение из javascript, вы вообще не изменяете свой HTML.

0 голосов
/ 25 октября 2009

помощники рельсов добавляют события onclick прямо в html. я всегда думал, что ненавязчиво означает, что ваша страница будет работать, когда у пользователя отключен JavaScript, но после того, как во время набора текста я высветил ответ Джейсона Пиньона, я зарегистрировался на нем.

Действительно, техника полного отделения javascript от html была помечена как ненавязчивый javascript.

...