Функция «Назад» в браузере иногда не работает на Android

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

Недавно, в течение последней недели или около того, на нашем экземпляре CDCK SaaS Tappara.co возникла новая проблема.

Иногда кнопка «Назад» в браузере не возвращает вас на страницу индекса, откуда вы пришли, а перенаправляет на другую тему, которую вы читали ранее.

Я лично сталкиваюсь с этим часто, и несколько пользователей сообщили о той же проблеме. Пока все жалобы поступили от пользователей Android/Chrome.

3 лайка

Привет, @ljpp — спасибо за сообщение об этой проблеме. Недавно были внесены обновления в код, отвечающий за навигацию «назад», поэтому вполне возможно, что возникла регрессия или несовместимость с темой/плагином на вашем сайте.

Можете ли вы указать конкретную последовательность переходов по страницам, которая вызывает эту проблему?

1 лайк

Шаблон воспроизведения пока не найден, но проблема возникает часто. Также за последние пару дней было замечено ещё несколько странных поведений, которые могут быть связаны с этим.

  • При обновлении страницы браузера меня перенаправляло на другую страницу, а не туда, где я находился в момент обновления.
  • Я видел, что темы не открывались при нажатии на них на индексной странице.
1 лайк

У меня это происходит прямо сейчас. Я заметил, что при использовании кнопки «Назад» тема перескакивает на другой пост внутри этой темы, а затем снова появляется последний пост. После этого я не могу открыть тему снова. После обновления страница темы появляется.
Обратите внимание: кнопка «Назад» также не возвращает меня к последнему посту в конце. Я посещал эту тему более одного раза ранее, поскольку она каким-то образом вызывает проблему (возможно, ссылка на другой пост темы или даже кнопка «Показать полный пост» первого поста — у меня пока нет чётких шагов воспроизведения).

Я попытался воспроизвести проблему ещё раз. Она определённо возникает, когда кнопка «Назад» не возвращает вас сразу к последнему посту, и происходит этот переход к другому посту, прежде чем вас вернёт к списку тем.

3 лайка

Это тоже происходит на iPad в приложении DiscourseHub при свайпе слева. Началось вчера именно здесь. Довольно раздражает :smirking_face:

И это случается не постоянно. Иногда появляется тема, которая была второй по счёту, нужно перезагрузить форум, и всё возвращается на главную. Или же начинает прокручивать историю красных тем.

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

3 лайка

Спасибо всем — мы продолжим изучать возможные причины. Если кто-то сможет проверить консоль браузера на наличие ошибок при возникновении этой проблемы, это было бы очень полезно (понимаю, что на мобильных устройствах это сделать сложнее, чем сказать!)

2 лайка

Я открыл тему из списка последних, нажал кнопку «Назад», чтобы вернуться к списку последних, и снова щёлкнул по теме. Она не открывается. Вот ошибка, которую я получаю:

Uncaught TypeError: Cannot read properties of undefined (reading 'refresh')
    at e.navigatedToPost (url.js:335:20)
    at e.routeTo (url.js:240:14)
    at e.E [as navigateToTopic] (topic-list-item.js:44:16)
    at e.click (topic-list-item.js:284:19)
    at e.trigger (core_view.js:63:1)
    at e.r [as trigger] (index.js:383:1)
    at e.trigger (ember-events.js:138:30)
    at e.r [as trigger] (index.js:383:1)
    at HTMLTableRowElement.o (ember-events.js:203:39)
navigatedToPost @ url.js:335
routeTo @ url.js:240
E @ topic-list-item.js:44
click @ topic-list-item.js:284
trigger @ core_view.js:63
r @ index.js:383
trigger @ ember-events.js:138
r @ index.js:383
o @ ember-events.js:203
5 лайков

Но каким-то образом то же самое может произойти без каких-либо ошибок:


И тогда кнопка «Назад» также не возвращает меня к последнему.

Ошибок нет, когда кнопка «Назад» не возвращает вас к последнему:

5 лайков

Спасибо за подробную информацию, @Moin. Я только что объединил коммит, который должен решить проблему. Он появится на Meta в течение следующих 30–60 минут.

5 лайков

После короткой сессии теперь кажется, что мой iPad тоже начал работать нормально. Значит, проблема была не только в Android?

2 лайка

Да, я не думаю, что это было специфично для Android.

Проблема в какой-то степени зависела от производительности сети и процессора, поэтому, возможно, именно поэтому её чаще замечали на планшетах. Однако мне также удалось воспроизвести эту проблему в Chrome на macOS после искусственного замедления сети и процессора в инструментах разработчика.

2 лайка

Если исправление не вызвало никаких регрессий здесь, в Meta, не могли бы вы также развернуть его на Tappara.co?

2 лайка

Похоже, возникла проблема, когда настройка сайта «индикатор загрузки» установлена в значение «спиннер» (не значение по умолчанию). Мы исправим это как можно скорее.

2 лайка

Проблема с «индикатором загрузки = спиннер» будет решена в FIX: Ensure topic route does not replaceState after navigation (#24563) · discourse/discourse@86f3e86 · GitHub

2 лайка

Эта тема была автоматически закрыта через 20 часов. Новые ответы больше не принимаются.