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

2
JAF 28 Дек 2015 в 06:48

3 ответа

Лучший ответ

По умолчанию Rails не использует AJAX, и вам необходимо обновить текущую страницу, чтобы отразить любые изменения на стороне сервера.

С учетом сказанного, Rails действительно упрощает работу с AJAX. Я предлагаю вам проверить это: http://edgeguides.rubyonrails.org/working_with_javascript_in_rails.html

4
Ryan Novas 28 Дек 2015 в 03:51

Rails по умолчанию использует Turbolinks, так что да, он использует Ajax. Однако это может испортить ваши обратные вызовы Javascript, если они не обрабатываются должным образом.

Если вы хотите удалить эту функцию, просто удалите атрибут data-turbolinks в своих скриптах.

4
bukk530 28 Дек 2015 в 03:57

Rails построен на HTTP, что означает, что любая переписка с сервером имеет чтобы получить ответ (даже если ответ является 200).

Если вы не используете ajax и не определили layout: false, Rails автоматически отправит полностью отрисованный набор HTML обратно в браузер с каждым ответом. Это будет включать <head> и т. Д.

-

Turbolinks предназначен для ускорения этого процесса путем извлечения только { {X1}} тега вашей страницы через ajax:

Вместо того, чтобы позволять браузеру перекомпилировать JavaScript и CSS между каждым изменением страницы, он поддерживает текущий экземпляр страницы и заменяет только тело (или его части) и заголовок в заголовке.

Итак, чтобы ответить на ваш вопрос; "default" Rails вызовет полное обновление браузера; использование Turbolinks ускорит его, только извлекая тег <body> из ответа сервера через ajax.

1
Richard Peck 28 Дек 2015 в 13:30