Отслеживание темы с помощью сочетания клавиш также отслеживает другие темы

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

Это, кажется, не происходит при использовании мыши.

Наблюдалось в Firefox 68.4.1esr. Впервые замечено на Rust Discourse, теперь я также проверил это здесь.

5 лайков

Привет, спасибо за сообщение!

Думаю, эта ошибка существовала уже довольно давно, возможно, недавние изменения сделали её более заметной.

Коротко о главном:

  • при получении события изменения мы не проверяем идентификатор темы
  • мы не ограничиваем частоту срабатывания горячих клавиш, поэтому, если зажать клавишу «m», событие будет отправляться бесконечно…

Вот исправление:

Это должно быть слито до конца недели.

7 лайков

Здравствуйте,
Сколько времени обычно занимает развёртывание исправления после слияния pull request?
На данный момент я не наблюдаю никаких изменений в поведении.

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

4 лайка

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

@Falco, это регресс?

2 лайка

Привет @david
Я всё ещё могу воспроизвести эту проблему на этом форуме. Не знаю, была ли она невозможна для воспроизведения в промежутке.

2 лайка

@joffreyjaffeux, не могли бы вы ещё раз посмотреть, пожалуйста?

@mpol нам не удалось воспроизвести эту проблему. Не могли бы вы подробно описать шаги, которые вы выполняете для её воспроизведения здесь, на Meta?

1 лайк

Извините, если проблема оказывается на моей стороне, но вот что происходит в Firefox 68.6.0esr прямо сейчас.

  1. Используя только навигацию с клавиатуры, начиная с только что открытой главной страницы https://meta.discourse.org/ в новой вкладке, у меня изначально нет отслеживаемых тем.
  2. Я нажимаю ‘j’, затем ‘Enter’, чтобы открыть тему.
  3. Я нажимаю ‘j’ достаточное количество раз, чтобы перейти к предложенным темам, и нажимаю ‘Enter’, чтобы открыть одну из них.
  4. Я нажимаю ‘j’, ‘m’, ‘t’ — теперь отслеживаются обе темы: и эта, и та, которую я открыл с главной страницы.

Кстати, я только что заметил, что если на шаге 3 нажать ‘m’, ‘t’ сразу, то отслеживается только правильная тема. Но даже после этого нажатие ‘j’, ‘m’, ‘t’ меняет состояние предыдущей темы.

1 лайк

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

После некоторого поиска я понял, что проблема связана с размером окна браузера (у меня оно было узким, а у Дэвида — широким), и кнопкой временной шкалы темы, которая постоянно регистрировала новый обработчик appEvents. Эта кнопка отображалась у Дэвида, но не у меня.

Я думаю, что это должно значительно улучшить ситуацию с отслеживанием тем. Подробнее в коммите:

4 лайка

А, да, запросы. Итак, в конце описанная выше процедура сгенерировала два идентичных POST-запроса к https://meta.discourse.org/t/146924/notifications, а затем, полагаю, проблемный запрос к https://meta.discourse.org/t/113192/notifications.

2 лайка

Да, это должно исправить подобные проблемы. Я сейчас сливаю изменения, так что вы сможете проверить это в Meta уже скоро.

5 лайков

@joffreyjaffeux Спасибо. После нескольких попыток мне больше не удалось воспроизвести проблему здесь, и теперь я действительно вижу только один правильный запрос к /notifications — без дубликатов и без запросов для других тем.

3 лайка