Я обычный пользователь форума на Discourse, и у меня обычно открыто много вкладок с различными обсуждениями. Проблема в том, что когда Discourse обнаруживает обновление, одно и то же всплывающее окно появляется в каждой вкладке. Нажатие кнопки «Обновить» в одной вкладке не обновляет остальные (по крайней мере, в Firefox 87 на macOS), поэтому форум продолжает задавать мне один и тот же вопрос до тошноты.
Вторая проблема заключается в том, что, честно говоря, это деталь, которая меня не волнует. Я знаю, что вы гордитесь своими релизами и используете умные механизмы ServiceWorker для обновления. Но это не то, что требует от меня срочных действий с такой настойчивостью, как это всплывающее окно. Я обычно даже не могу понять, что изменилось. Мне не кажется, что нужно бросать всё, чем я занимаюсь, и обновляться немедленно. Если эти обновления действительно являются срочными обновлениями безопасности, о которых давно пора позаботиться, то вы должны явно указать об этом или просто обновить страницу без запроса.
Всплывающее окно требует от меня решения, но не предоставляет никакой информации или контекста для его принятия, а также не обосновывает, почему оно представлено как срочное прерывание.
Если вы активно используете сайт, это предупреждение никогда не появляется. Мы перехватываем переход.
Оно отображается только в том случае, если полезная нагрузка JavaScript изменилась и с момента обновления прошло несколько часов.
Для нас нереально создать систему, которая определяла бы, что пользователь X не заинтересован в обновлении Y. Обновление Y может включать исправление критического рабочего процесса пользователя X.
Я понимаю, что это может быть раздражающим, если у вас есть сайт, на котором вы очень активны, вы держите множество вкладок открытыми, и он обновляется несколько раз в день.
В общем и целом, я слышу ваше недовольство, но не уверен, что мы можем легко что-то изменить, чтобы улучшить ситуацию для вашего конкретного случая.
Я согласен, что это всплывающее уведомление запутывает. Обычно, когда я его вижу, первая мысль — что есть новый контент, который стоит посмотреть. На самом деле же обновляется сам Discourse, а не появляются новые сообщения, которые нужно просмотреть.
Есть ли способ обновлять Discourse, не заставляя пользователя принимать решение?
Проблема в том, что вы можете быть заняты другим делом.
Возможно… если вы находитесь на фоновой вкладке… и у вас не открыт редактор для другой темы… и мы сможем сохранить позицию прокрутки… и гарантируем, что обновление не вызовет распределённую атаку типа «отказ в обслуживании» на сайты (благодаря поэтапному обновлению и случайным задержкам).
Это усложняет задачу: нам, вероятно, потребуется несколько дней работы, чтобы обеспечить безопасное и незаметное обновление.
Кроме того… сайты, которые часто выпускают обновления, увеличат трафик, так как мы будем принудительно загружать промежуточные версии.
Хорошо, возможно, мы можем улучшить формулировку, описывающую проблему, просто заменив текст на что-то вроде «Приложение, работающее на этом сайте, было обновлено».
Она никогда не появляется на той вкладке, которую вы используете. Она отображается на всех остальных вкладках и остаётся там, даже когда вы перемещаетесь по основной.
Я постоянно вижу это всплывающее окно после обновления приложения. Интересно, связано ли это с тем, что я тоже держу открытыми несколько вкладок. Подозреваю, что это поведение продвинутого пользователя, и встречается редко — сайты обновляются не так часто, если только они не находятся на острие прогресса. Так что, возможно, весь этот вопрос не настолько важен, чтобы уделять ему много времени.
Но текст можно улучшить, чтобы немного лучше объяснить, что происходит. Я только что создал запрос на слияние с предложением..
Этот сайт только что получил обновление программного обеспечения. Получить последнюю версию сейчас?
Думаю, это верное направление, но для меня (если бы я не знал, о чём речь) это звучит так, будто мне придётся скачать и установить что-то, что может отпугнуть некоторых людей.
Этот сайт только что получил обновление программного обеспечения. Перезагрузите страницу, чтобы увидеть последнюю версию?
Да, это хороший момент. Думаю, люди, которые не осознают, что находятся на сайте, являющемся приложением, могут запутаться из-за упоминания программного обеспечения. Это звучит почти как фишинг.
Жалоба ОП обоснована. Я сталкиваюсь с этим постоянно: поведение не интуитивно, и совершенно непонятно, что произойдёт при нажатии ОК или ОТМЕНА. Это странность Discourse, к которой я за годы просто привык и больше не беспокоюсь. Впервые вижу, чтобы кто-то другой жаловался на это. Проблема есть, но она затрагивает только активных пользователей на таких сайтах, как meta, которые обновляются часто, поэтому я склоняюсь к идее, что меньше — значит лучше. Не думаю, что нам нужно что-то делать, если только мы не захотим ещё больше упростить формулировки, как предлагает @codinghorror.
Меня больше интересует, почему так много из нас, активных пользователей, чувствуем необходимость открывать несколько вкладок. Можно ли улучшить Discourse, чтобы это стало менее необходимым? Для меня это обычно связано с черновиками. Я нахожусь в процессе написания поста, который занимает у меня время, и получаю уведомление о другом посте, в котором я участвую. Я нажимаю Control+клик, чтобы перейти туда и разобраться с ним, но потом это может превратиться в «кроличью нору», и мне приходится повторять это снова при получении нового уведомления или когда вижу пост, требующий внимания, и так до бесконечности. Через час-два я обнаруживаю, что у меня открыто много вкладок, через которые мне приходится постепенно возвращаться, чтобы завершить посты и закрыть вкладки. Поскольку meta обновляется чаще других сайтов и я провожу здесь большую часть дня, я часто получаю это предупреждение.
Должно ли это быть модальным окном? В браузерах есть всплывающее окно для критических обновлений, но оно обычно появляется в углу и не перекрывает всю страницу. Пример с WhatsApp от Falco тоже кажется лучше.
Отличная идея, выглядит гораздо лучше и менее навязчиво.
Ключевой вопрос здесь: насколько велика реальная срочность? Например, если я не обновлю Chrome в течение недели, ничего страшного. С этой имитацией баннера я тоже могу отложить обновление на время, чтобы закончить черновик или что-то ещё.
Бывают ли случаи, когда после обновления Discourse необходимо немедленно обновить страницу, иначе сайт перестанет работать? На мой взгляд, это единственная причина, по которой имеет смысл использовать полноэкранное модальное окно.
Это не всегда верно для Chrome (или Discourse)… возможно, обновление является обновлением безопасности, и вы уязвимы, пока не установите его.
В обоих случаях что-то может быть сломано, что повлияет на вас до тех пор, пока вы не обновитесь, но, как отметил Sam, это добавляет огромную сложность при попытке определить это для каждого пользователя.
Верно, но, как вы сами говорите, на практике невозможно учесть все возможные сценарии. Как пользователь, я предпочитаю сам решать, когда обновлять Chrome; мне определённо было бы неудобно, если бы я был вынужден немедленно перезапускать браузер при каждом обновлении.
Полагаю, мой вопрос в следующем: независимо от того, что обновления Discourse исправляют важные для пользователей проблемы, может ли сама ситуация с открытыми вкладками, на которых запущены разные версии приложения, вызывать проблемы? (Для меня первое оправдывает показ баннера или напоминания, а второе — принудительное немедленное обновление через всплывающее окно).
Мы могли бы убрать модальность, но меня беспокоит, что если её проигнорировать, в исключительных обстоятельствах могут возникнуть настоящие патологические случаи.
Черновики могут перестать сохраняться
После отправки поста он может оказаться в корзине и быть потерян навсегда
Время чтения тем может перестать отслеживаться
Лайки могут перестать регистрироваться
Навигация может сломаться, так что при клике на ссылки интерфейс может просто зависнуть
Всё возможно.
Всё зависит от того, насколько сильно накапливаются вкладки и как долго вы не обновляли сервер.
Представьте, например, что инстанс обновляется после 4 лет простоя.