Opened 4 years ago
Closed 4 years ago
#506 closed улучшение (fixed)
Вывести сообщение об устаревшем браузере
Reported by: | san | Owned by: | alx |
---|---|---|---|
Priority: | средний | Milestone: | 1 очередь |
Component: | web-интерфейс (sw) | Keywords: | |
Cc: | andrei |
Description
В связи с участившимися случаями обращений пользователей в техподдержку с вопросом "почему не отображается страничка после обновления" предлагаю добавить какую-то проверку и вместо пустой странички отображать пользователю информацию о том что его браузер устарел и он не сможет работать с веб-интерфейсом.
Change History (9)
comment:1 by , 4 years ago
follow-up: 3 comment:2 by , 4 years ago
Последний всплеск обращений, судя по всему, связан с этой новой функцией:
function checkTDMintersect(_this, config) { var text; var arr = _this.channels(config); $('#boards-table tr:gt(0)').each(function(){ let obj = $(this).data('boardObject'); if(obj == _this) return; if(obj && obj.channels) { let inter = obj.channels().filter(x => arr.includes(x)); ... ...
Всего в последние месяцы было 4-5 таких обращений.
Из тех двух сообщений об ошибках, что у меня есть- одному браузеру не понравилось использование лямбда-функций а другой(Firefox 43.0) ругается SyntaxError: missing ; before statement scripts.js:721:5
на строку let obj = $(this).data('boardObject');
Уточни, пожалуйста, какую именно проверку ты предлагаешь добавить
Я хотел предложить проверку на поддержку лямбда-функций, но сообщение от файрфокса меня смутило...
comment:3 by , 4 years ago
Replying to san:
Уточни, пожалуйста, какую именно проверку ты предлагаешь добавить
Я хотел предложить проверку на поддержку лямбда-функций
Понял, спасибо за уточнение. Я пока не очень представляю, как такую проверку сделать, но думаю, что это возможно. Как один из вариантов: при загрузке страницы заставить браузер с помощью лямбда-функции присвоить какую-то глобальную переменную, а потом загрузить дополнительный скрипт, в котором проверить, было ли это присваивание выполнено...
А что тебя смутило в сообщении античного firefox?
follow-up: 5 comment:4 by , 4 years ago
Насколько я понял ему не понравился let
, и кажется, эта античная версия файрфокса уже пройдёт проверку на лямбда-функции, но при этом страничку то не отобразит нормально.
Поэтому я теперь склоняюсь к "не будем делать"- пожалуй это таки бессмысленно проверять. Слишком сложно в разнообразии старых браузеров и том что они поддерживают разобраться.
Может быть, имеет смысл где-то в конце кода сделать проверку, типа распарсил ли браузер код до конца. Например, вывести сначала сообщение что возможно браузер старый, а в конце кода его скрыть, т.е. если код выполнится до конца - пользователь увидит нормальную страничку, если нет, то сообщение о старом браузере, не понятно как только сделать чтобы это не портило вид тем у кого нормальный браузер и, например, медленно грузится страничка.
comment:5 by , 4 years ago
Replying to san:
Слишком сложно в разнообразии старых браузеров и том что они поддерживают разобраться.
Так и не надо разбираться, достаточно проверить, что некая конструкция выполняется. А если нет - то и не надо разбираться, что это за браузер, достаточно то, что он не поддерживает необходимую языковую конструкцию...
не понятно как только сделать чтобы это не портило вид тем у кого нормальный браузер и, например, медленно грузится страничка.
Можно в самом конце основного скрипта устанавливать некий флаг успешности, а потом в уже в другом скрипте этот флаг проверять. Тогда синтаксическая ошибка в основном скрипте не помешает выполниться следующему скрипту, и в результате проверки он может выдать предупреждение.
Сделал такую проверку в "Нижнем Самурае". Попробуй открыть его разными браузерами.
follow-up: 7 comment:6 by , 4 years ago
Попробовал.
Актуальные Хром, Файрфокс, Опера и Edge отображают нормальную страничку.
Файрфокс 43 и IE 11 показывают сообщение об устаревшем браузере.
Кажется всё работает как задумано.
comment:7 by , 4 years ago
Replying to san:
Кажется всё работает как задумано.
Тогда уточни формулировку текста (если есть к ней замечания) - и закроем тикет.
Replying to san:
Уточни, пожалуйста, какую именно проверку ты предлагаешь добавить.