Страницы

Поиск по вопросам

среда, 10 июля 2019 г.

Почему gem turbolinks так странно себя ведет?

В документации по этому gem'у сказано, что он необходим для того, чтобы получать новую страницу с сервера через ajax, парсить ее на стороне клиента и заменять только содержимое тега body и head.
Стандартное "одностраничное" приложение, получающее страницы с сервера через ajax я всегда проверял следующим, как мне кажется, надежным методом: вставлял на одну страницу тег (в случае rails это audio_tag) и ссылку на другую страницу. Если при переходе на другую страницу по этой ссылке музыка, начавшая проигрываться на предыдущей странице, продолжила играть, значит действительно ajax работает как надо и страница не делает свой обычный цикл перезагрузки, а парсится прямо в клиенте из html, полученного с сервера.
Но в gem turbolinks, по-умолчанию установленный в rails приложение, я смотрю, все не так.
Я неправильно понимаю суть его работы? И что-то не так делаю?


Ответ

Turbolinks аяксово получает html-ответ от сервера и заменяет весь body. Информация внутри head не заменяется. Также есть возможность пометить какой-либо тег в body как перманентный, и он заменяться не будет. В пятой версии turbolinks это помечается через атрибут data-turbolinks-permanent

Комментариев нет:

Отправить комментарий