Направляющие 3,0 беты и Помощники JS с jQuery

В информации о версии для направляющих 3,0 беты это говорит:

"Скромные помощники JavaScript с драйверами для Прототипа, jQuery"

Таким образом, как я устанавливаю направляющие 3 для использования jQuery затем? Это все еще загружает все библиотеки Prototype по умолчанию.

Я взял это, чтобы означать, что направляющие 3 создали в функциональности, подобной jRails плагину, но возможно я неправильно понимаю :)

Кроме того, в качестве награды вопросом, если я использую Прототип, является там способ заставить направляющие загружать уменьшенные версии, и еще лучше сингл связал файл JS для сокращения запросов HTTP?

Спасибо.

5
задан firecall 11 February 2010 в 22:30
поделиться

6 ответов

Когда вы создаете приложение Rails 3, просто передайте также параметр -J :

$ rails app_name -J

Будет пропущено включение Библиотеки прототипов. Теперь все, что вам нужно сделать, это поместить последний файл jquery.js в каталог public / javascripts . Как только вы это сделаете, вам также понадобится jQuery-версия файла rails.js . Вы можете получить это здесь:

http://github.com/rails/jquery-ujs/blob/master/src/rails.js

РЕДАКТИРОВАТЬ: Вам необходимо включить эти файлы в верхнюю часть ваших макетов, чтобы получить функциональность. Вы можете сделать это:

<%= javascript_include_tag "jquery", "rails" %>

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

2
ответ дан 15 December 2019 в 01:00
поделиться

Я бы предположил, что отражение будет намного медленнее, вероятно, порядка магинутности.

Это довольно легко скамейка, дать ему идти и опубликовать свои результаты:)

-121--3545600-

StartHttp будет реальной проблемой, ее COM-объектом и не поддерживает тип манипуляции прототипом, который вы хотите использовать. Что еще хуже, JQuery избегает StartStartRequest в IE, даже если он доступен, вместо него используется GroupHttp.

-121--4501497-

Извлечение Закрытие Google

Это может превратить несколько файлов javascript в один сжатый файл js. Он может даже выяснить, какие части библиотеки вы не используете, и удалить их.

1
ответ дан 15 December 2019 в 01:00
поделиться

Unobtrusive JS относится не к методам PrototypeHelper, а к удаленным формам, ссылкам и тому подобному. Концепция заключается в том, что вы включаете :remote => true в form_for или любые вспомогательные методы, поддерживающие это, а затем драйвер под названием rails.js будет искать эти удаленные методы и перехватывать события submit или click и отправлять их через xhr.

Чтобы использовать jquery, вам просто нужно заменить прототип ujs драйвера (который поставляется с rails) на jquery ujs драйвер, который был извлечен в собственное репо незадолго до выхода rails 3 beta. Вы можете найти его здесь.

1
ответ дан 15 December 2019 в 01:00
поделиться

вы можете посмотреть эту статью: http://flow.handle.it/past/2010/2/9/ jquery_in_rails / . В нем объясняется процесс работы с Unobtrusive JS и jQuery.

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

0
ответ дан 15 December 2019 в 01:00
поделиться

Я не знаю о Rails 3, но я попытаюсь ответить на вопрос о бонусах.

В директорию public/javascript вы можете положить все, что захотите. По умолчанию он загрузит файлы: prototype.js, effects.js, dragdrop.js и controls.js (читать далее). Если вы хотите сжать все js файлы и отправить их в одном файле, вы можете использовать этот плагин.

Конечно, он не будет работать для динамически генерируемых js-файлов.

0
ответ дан 15 December 2019 в 01:00
поделиться

Я также работаю над этим, пытаясь преобразовать мой старый ajax с помощью rails 3.

Насколько я могу судить, они переехали в структуру который добавляет data-remote = true и когда вы добавляете : remote => true к чему-то вроде link_to , который должен заменить link_to_remote в rails 3, поэтому больше нет методов onclick, вызывающих методы Ajax.

Итак, как же тогда Ajax работает в Rails 3? Что ж, у вас должны быть методы javascript, которые отслеживают, когда вы щелкаете ссылки со свойством data-remote = true и что-то с ним делаете, но фактически не включаете их в Rails (из чего Я могу сказать), это агностик библиотеки, поскольку вы можете написать эти методы для отслеживания кликов в прототипе, jquery, написать их самостоятельно или что-то еще.

Я нашел на github некоторый javascript, который будет отслеживать эти события:

В прототипе

В jQuery

Я думаю, чтобы фактически загрузить jquery вместо прототипа , вам нужно будет просто загрузить его в public / javascripts и вручную указать jquery, использовать javascript_include_tag: all или переопределить javascript_include_tag (не рекомендуется)

0
ответ дан 15 December 2019 в 01:00
поделиться
Другие вопросы по тегам:

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