Резка рельсов яваскриптов - PullRequest
       2

Резка рельсов яваскриптов

0 голосов
/ 20 февраля 2011

У меня вопрос о том, чтобы продумать приложение Rails.

У меня есть богатое ajax-приложение, которое использует google maps api, jquery, jquery ui и много jquery plugins, например history, browser, hotkeys and scrollto.Теперь у него есть бэкэнд PHP, но я хочу переписать его в Rails on Rails.

Было бы нормально удалить все JavaScript-коды Rails (например, javascript_include_tag) из кода и использовать только мой?

Ответы [ 3 ]

3 голосов
/ 20 февраля 2011

Вы можете сделать это, если захотите. Основная (единственная?) Причина использования javascript_include_tag заключается в том, чтобы при изменении сценариев JS, размещенных на вашем сервере , браузеры ваших пользователей загружали новый сценарий вместо использования своей кэшированной копии сценария, что у них будет, если они когда-либо посещали ваш сайт раньше.

Обычно, если файл 'public / javascripts / myscript.js' существует, то

<%= javascript_include_tag 'myscript.js' %>

еванлютирует до

<script type="text/javascript" src="/javascripts/myscript.js?CHECKSUM"></script>

, где CHECKSUM - это либо дата последнего изменения файла, либо контрольная сумма его содержимого (я не уверен, что - достаточно сказать, что значение будет меняться при каждом изменении файла, что заставляет браузеры загружать новые скрипт).

Если файл javascript, о котором идет речь, отсутствует на вашем сервере (например, вы извлекаете jQuery из API Google), то Rails не будет знать, как сгенерировать контрольную сумму, и результат будет выглядеть как обычный * Тег 1015 * (без бита ?CHECKSUM).

Так что нет смысла использовать javascript_include_tag в сценариях, которые вы сами не размещаете. Но если у вас есть свои собственные файлы сценариев - и особенно если они будут изменяться даже с умеренной частотой - тогда вам, вероятно, стоит подумать об их использовании; это удобный способ убедиться, что все видят актуальную версию сайта.

Надеюсь, это поможет!

1 голос
/ 20 февраля 2011

С вами должно быть все в порядке, если вы включите JQuery.Вы также можете использовать гем jquery-rails , чтобы легко перенести приложение Rails из прототипа по умолчанию в jquery.Затем просто включите все свои существующие файлы JavaScript, как обычно.

1 голос
/ 20 февраля 2011

Не думаю, что это нормально, но вы определенно можете это сделать.Имейте в виду, что все, что создает код JS автоматически в рельсах, вероятно, сломается.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...