У меня есть тяжелое веб-приложение на ajax, созданное с использованием PHP, jQuery.
Я ищу решение следующих проблем.
(1).Пользователь запускает приложение в браузере.Интернет отключается.Браузер отправляет ajax-запрос к серверу, и запрос явно не выполняется из-за отсутствия сети.Я хочу, чтобы кросс-браузерный способ (включая Windows / MAC / Linux) обнаруживал эту ошибку и отображал уведомление для пользователя.
(2).Сеть включена.Браузер отправляет ajax-запрос на сервер, и до того, как он получает ответ, сеть отключается.Поэтому, когда сервер отправляет ответ, клиент находится в автономном режиме.Здесь также я хочу показать пользователю уведомление об ошибке.Gmail делает это прекрасно.Я написал письмо, нажал кнопку «Отправить» и в тот же момент отключил сетевой кабель.Примерно через 8-10 секунд на экране появится сообщение «К сожалению ... произошла ошибка сервера, и ваше письмо не было отправлено».
Проблема (2) выше становится более сложной для MAC.Я проверял этот случай как на MAC, так и на Windows (я проверял на Windows XP).В Windows XP, если сети нет, запрос умирает через несколько секунд, но в MAC запрос не умирает более 1 часа.Здесь я не могу придумать способ обнаружить, что сеть пропала при получении ответа, и показать это уведомление пользователю?