Rails Turbolinks 5 вызывает мерцание пользовательского интерфейса?

Мое приложение rails мерцает во время перехода. Виновником, похоже, является Turbolinks. Кто-нибудь знает, как остановить мерцание или почему оно вообще мерцает?

Если вы перейдете по ссылке ниже и нажмете любую из кнопок входа, вы повторите то, что я испытываю.

Странно то, что при доступе к нему из Firefox или Safari нет проблем. Это происходит только в последней версии Chrome и Internet Explorer? Так что я не уверен, что это проблема браузера.


person Paul Brunache    schedule 05.10.2016    source источник
comment
Эй, @Paul Brunache, ты хоть что-нибудь понял по этому поводу?   -  person rm-rf    schedule 20.02.2017
comment
@rm-rf Я только что удалил объявление turbolinks в файле js моего приложения. Я понял, что сделал это для каждого проекта, потому что происходит то, что турболинки пытаются перерисовать, а вспышка — это ошибка в хроме, которая была открыта некоторое время, и они, похоже, не собираются ее исправлять. Я открыл, используя реакцию с реактивным маршрутизатором.   -  person Paul Brunache    schedule 21.02.2017


Ответы (1)


Мерцание происходит при загрузке кеша непосредственно перед тем, как турболинки перезаписывают его новым содержимым. Я смог исправить это, поместив (в <head> макета) следующий код:

<meta name="turbolinks-cache-control" content="no-cache">

Приведенный выше код отключает функцию кэширования турболинков. Нет кэширования == нет мерцания пользовательского интерфейса. Однако при использовании кнопок «Назад» или «Вперед» в браузере теперь будет выполняться сетевой вызов (по-прежнему через Turbolinks).

См. пример кода по адресу: https://github.com/DockerOnRails/todomvc-turbolinks.


Существует также другой вариант очистки кеша перед использованием Turbolink.visit (который вызывает мерцание пользовательского интерфейса): вызов Turbolinks.clearCache() сделает то же самое, что и отключение кеша, но даст вам возможность продолжать использовать кеш в других местах.

person Andrew K    schedule 03.09.2017
comment
Вы можете узнать больше о кеше здесь: github.com/turbolinks/turbolinks - person Andrew K; 03.09.2017
comment
Действительно ли мы не можем использовать кэширование на любой странице с изображениями? Это кажется немного экстремальным? Кэш довольно классный, и мне стыдно просто выбрасывать его, потому что страница содержит изображение? - person Greg Blass; 01.10.2019
comment
Я не уверен, может быть, есть способ убедиться, что контент действительно изменился, прежде чем переписывать его. Я не видел способа сделать это с версией turbolinks, которую я тестировал, отвечая на этот вопрос. С тех пор я не использовал турболинки. - person Andrew K; 22.11.2019