Rails 3 - включая JavaScript на View? - PullRequest
3 голосов
/ 25 сентября 2010

вот что я пытаюсь сделать правильно .... Когда пользователь входит в систему и перенаправляет на целевую страницу, я хочу запустить немного jquery ajax, чтобы захватить и внедрить некоторый контент.

Первоначально он был в моем файле application.js, но проблема в том, что существует код для пользователя, который не вошел в систему, что означает, что я должен добавить логику для учета того, что не кажется чистым .

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

Как Rails 3 гуру справляются с этим? Спасибо!

Ответы [ 3 ]

5 голосов
/ 25 сентября 2010

Ну, вы можете включить файл jQuery вверху.

Если это не вариант, добавьте <%= yield :javascript %> в макет под jQuery include и выполните:

<% content_for :javascript do %>
    <script type="text/javascript">
        // code goes here
    </script>
<% end %>

Он будет размещен в правильном месте в вашем макете. (Тем не менее, я бы рекомендовал для кэширования написать Javascript во внешнем файле и включить его при необходимости вместо использования встроенного Javascript. Просто хорошая практика.)

2 голосов
/ 26 сентября 2010

Загрузите jQuery из Google CDN и загрузите ваш вид JS после.Если вы беспокоитесь о скорости целевой страницы для не вошедших в систему пользователей, сделайте это Page Cached.

Если вы все еще хотите оптимизировать его, используйте обратный прокси-сервер, такой как Sqiud.Вы также можете использовать Jammit или Asset Packager (http://synthesis.sbecker.net/pages/asset_packager), чтобы свести к минимуму ваш JavaScript и CSS.

Совет: вам следует сосредоточить усилия на производительности после того, как вы закончите писать свое приложение, легко попасть ввопросы с более низким приоритетом, которые будут препятствовать вашим усилиям по развитию.

1 голос
/ 25 сентября 2010

Вы упростите себе задачу, если просто загрузите jQuery ранее в документе. Если вы загрузите его из API Google, скорее всего, он все равно будет кэширован в браузере вашего клиента, и поэтому незначительное увеличение времени загрузки страницы вообще не станет ничем.

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