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)

in reply to:  description comment:1 by alx, 4 years ago

Replying to san:

предлагаю добавить какую-то проверку

Уточни, пожалуйста, какую именно проверку ты предлагаешь добавить.

comment:2 by san, 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');

Уточни, пожалуйста, какую именно проверку ты предлагаешь добавить

Я хотел предложить проверку на поддержку лямбда-функций, но сообщение от файрфокса меня смутило...

in reply to:  2 comment:3 by alx, 4 years ago

Replying to san:

Уточни, пожалуйста, какую именно проверку ты предлагаешь добавить

Я хотел предложить проверку на поддержку лямбда-функций

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

А что тебя смутило в сообщении античного firefox?

comment:4 by san, 4 years ago

Насколько я понял ему не понравился let, и кажется, эта античная версия файрфокса уже пройдёт проверку на лямбда-функции, но при этом страничку то не отобразит нормально.
Поэтому я теперь склоняюсь к "не будем делать"- пожалуй это таки бессмысленно проверять. Слишком сложно в разнообразии старых браузеров и том что они поддерживают разобраться.

Может быть, имеет смысл где-то в конце кода сделать проверку, типа распарсил ли браузер код до конца. Например, вывести сначала сообщение что возможно браузер старый, а в конце кода его скрыть(это утрированный пример, наверное можно сделать изящнее) , т.е. если код выполнится до конца - пользователь увидит нормальную страничку, если нет, то сообщение о старом браузере, не понятно как только сделать чтобы это не портило вид тем у кого нормальный браузер и, например, медленно грузится страничка.

Last edited 4 years ago by san (previous) (diff)

in reply to:  4 comment:5 by alx, 4 years ago

Replying to san:

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

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

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

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

Сделал такую проверку в "Нижнем Самурае". Попробуй открыть его разными браузерами.

comment:6 by san, 4 years ago

Попробовал.
Актуальные Хром, Файрфокс, Опера и Edge отображают нормальную страничку.
Файрфокс 43 и IE 11 показывают сообщение об устаревшем браузере.

Кажется всё работает как задумано.

in reply to:  6 comment:7 by alx, 4 years ago

Replying to san:

Кажется всё работает как задумано.

Тогда уточни формулировку текста (если есть к ней замечания) - и закроем тикет.

comment:8 by san, 4 years ago

Текст меня устраивает.

comment:9 by alx, 4 years ago

Resolution: fixed
Status: newclosed

In 2040/sw:

В веб-интерфейсе добавлена проверка успешного выполнения основного скрипта
(в самом конце скрипта устанавливается флаг успешности), и в случае неудачи
выводится предупреждение. Closes #506.

Note: See TracTickets for help on using tickets.