Не возвращает свойство navigarot.onLine

Поддержка
  • Есть такой метод
    https://developer.mozilla.org/en-US/docs/Web/API/Navigator/onLine

    для проверки используется:

    if (navigator.onLine) {
      console.log('online');
    } else {
      console.log('offline');
    }
    

    В консоли обычного хрома отрабатывает корректно:
    с включенным интернетом:

    Screen Shot 2021-12-15 at 06.59.12.png

    с выключенным интернетом:

    Screen Shot 2021-12-15 at 07.01.27.png

    в басе:

    Screen Shot 2021-12-15 at 07.05.33.png

    сделал тестовый скрипт, первый вариант без прокси, второй с несуществующим прокски (имитация обрыва связи).

    В обоих случаях почему то возвращает true

    test_online.xml

  • @Bigma said in Не возвращает свойство navigarot.onLine:

    с несуществующим прокски (имитация обрыва связи)

    В реальном Chrome точно так же:

    Screenshot_252.png
    Screenshot_251.png

    В консоли обычного хрома отрабатывает корректно

    В BAS тоже корректно работает:

    Screenshot_255.png
    Screenshot_256.png

  • А ты инет полностью отрубал так ?
    Я в басе несуществующий прокси подсовывал, и думал он на него ориентироваться будет.

  • @Bigma said in Не возвращает свойство navigarot.onLine:

    А ты инет полностью отрубал так ?

    Да.

  • @sir-ydroidrrr спасибо что перепроверил,
    видимо прокси ему побую, он видимо и так сеть видит.

  • @Fox вот скажи как профессионал - считать это багом или нет ?

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

    Бас фактически всегда отдает его true, хотя по идее должен ориентировать на доступность сети через прокси.

  • @Bigma said in Не возвращает свойство navigarot.onLine:

    @Fox вот скажи как профессионал - считать это багом или нет ?

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

    Бас фактически всегда отдает его true, хотя по идее должен ориентировать на доступность сети через прокси.

    В Chrome и Safari, если браузер не может подключиться к локальной сети (LAN) или маршрутизатору, он отключен; все остальные условия возвращают true. Таким образом, хотя вы можете предположить, что браузер находится в автономном режиме, когда он возвращает false значение, вы не можете предполагать, что истинное значение обязательно означает, что браузер может получить доступ к Интернету.

  • @Fox Суть то в том, что счетчик яндекс метрики утыкан этими перепроверками.
    И мы можем не можем, а они проверяют и ориентируются.

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

  • @Bigma said in Не возвращает свойство navigarot.onLine:

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

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

  • @Fox ну они там все же под LAN имеют ввиду адаптер интернет.
    Там дальше написано:
    Вы можете получать ложные срабатывания, например, в тех случаях, когда на компьютере запущено программное обеспечение виртуализации, имеющее виртуальные адаптеры Ethernet, которые всегда «подключены».

    И дальше они приводят ссылку на статью - что это распространенная практика определения статуса сети:
    https://www.html5rocks.com/en/mobile/workingoffthegrid/

  • @Bigma said in Не возвращает свойство navigarot.onLine:

    @Fox ну они там все же под LAN имеют ввиду адаптер интернет.
    Там дальше написано:
    Вы можете получать ложные срабатывания, например, в тех случаях, когда на компьютере запущено программное обеспечение виртуализации, имеющее виртуальные адаптеры Ethernet, которые всегда «подключены».

    И дальше они приводят ссылку на статью - это распространненая практика определения статуса сети:
    https://www.html5rocks.com/en/mobile/workingoffthegrid/

    Я всё равно не понимаю чего именно вы хотите. Попробуйте выполнить все ваши проверки на Chromium, если работа в нём будет такой же как в BAS, значит это не баг

  • @Fox В хромиуме нету прокси, тем более нету такого как он встроен в бас.

    Чего я хочу ? ну в идеали, если прокси не имеет доступ в сеть, то, чтоб это значение менялось, ну соответственно наоборот, как появилась сеть в прокси, возвращалось в true.

    Но понятно что с этим надо переспать.

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

    Сейчас несколько функций написано, перепроверяющих загрузилась ли страница и что делать если нет.

    При стабильном инете нет проблем, коню понятно. Часто используют либо со сменой айпи мобильные, либо резидентские, которые сами по себе отваливаются.

    Я понимаю, что решение не простое, но думаю стоит об этом подумать всем.

    Может что и получится.

  • This post is deleted!
  • This post is deleted!
  • This post is deleted!
  • This post is deleted!
  • This post is deleted!
  • This post is deleted!
  • This post is deleted!

  • 0 Votes
    2 Posts
    87 Views
  • 0 Votes
    6 Posts
    615 Views
  • 0 Votes
    50 Posts
    7584 Views
  • 0 Votes
    5 Posts
    678 Views
  • 0 Votes
    14 Posts
    1337 Views