Я немного поэкспериментировал, пытаясь придать сайтам иной вид, и создал модальное окно темы в стиле Facebook. Кажется, оно загружается у меня быстрее и работает плавнее на десктопе.
Очень круто! Ты проверял это в темах с 20+ ответами? Именно тогда мы подгружаем больше «страниц» постов при прокрутке, и по моему опыту это одна из самых больших сложностей с такого рода альтернативными видами.
Да, это следующее, что мне нужно изучить, но я размышлял над этим: имеет ли это значение? Это то же самое, как ведёт себя Facebook: прямая ссылка ведёт к самому посту, а если нажать её при просмотре, открывается модальное окно.
Да, потому что модальное окно загружает обычное приложение темы Discourse внутри iframe, а не рендерит отдельную копию темы. Iframe устанавливает собственное соединение с MessageBus, и Discourse продолжает обрабатывать поток сообщений в обычном режиме, включая загрузку старых сообщений и получение новых опубликованных сообщений.
Родительская страница также остается активной на заднем плане, поэтому технически, пока модальное окно открыто, существует два экземпляра Discourse и два соединения с MessageBus. Это работает, хотя и немного тяжелее, чем полностью нативная реализация. Закрытие модального окна удаляет iframe и его соединение.
Я просто удивился, что при клике на вашу ссылку тема не открылась в модальном окне, хотя вы опубликовали её именно для того, чтобы показать, что это работает в модальном окне.
Только что закончил мобильную версию и доволен тем, как всё работает. Следующий шаг — найти лучший способ реализации и ускорить загрузку. У кого-нибудь есть предложения?
После дополнительных тестов я использовал версию без JavaScript, которую видит Google, и она загружается мгновенно в модальном окне. Если бы я мог как-то использовать содержимое этой версии, это значительно ускорило бы процесс.
На мобильных устройствах загрузка немного медленная: после нажатия виден только пустой экран и кнопка закрытия в правом верхнем углу, так что, кажется, приходится долго ждать перед пустым экраном.
Вот над чем я работаю сейчас На данный момент это просто концепция, которую я хочу воплотить в жизнь. Однако на моём устройстве она загружается за 2 секунды на мобильном с анимацией загрузки Discourse, так что не совсем понятно, что происходит. Вероятно, это из-за того, что сервер находится в Лондоне, Великобритания, и пока нет CDN.
Теперь темы в модальном окне загружаются мгновенно, осталось найти способ использовать первый загруженный экземпляр Discourse для ответов и т. д. (это на тестовом сервере)
Я отключил это на основном сайте, так как сейчас туда приходят люди, которые регистрируются, поэтому я перенёс это на тестовый сервер. Надеюсь, к середине августа всё будет готово, если кому-то интересен модаль.