Этот проект активно не поддерживается.
Примечание для пользователей версий до 0.6.0: раньше в автономном режиме использовался файл, размещенный в облаке, в качестве одного из методов определения состояния соединения. Этот метод устарел, и изображение было удалено. Пожалуйста, обновите версию до версии Offline 0.7.0+.
Улучшите работу вашего приложения, когда ваши пользователи теряют соединение.
Отслеживает запросы ajax в поисках сбоев
Подтверждает статус подключения путем запроса изображения или поддельного ресурса.
Автоматически захватывает ajax-запросы, сделанные во время разрыва соединения, и повторяет их после восстановления соединения.
Простой пользовательский интерфейс с красивыми темами
3 КБ минимизировано и сжато
Включите JavaScript, одну из тем и один из языков на свой сайт. Все готово!
Чтобы использовать только API JavaScript без индикатора пользовательского интерфейса, просто оставьте файл CSS.
Если вы хотите посмотреть, как это выглядит на вашем сайте, отключите Интернет или попробуйте симулятор.
При желании вы можете предоставить некоторую конфигурацию, установив Offline.options
после добавления сценария.
Опции (любые могут быть предоставлены как функция) со значениями по умолчанию:
{ // Должны ли мы проверять статус соединения сразу при загрузке страницы. checkOnLoad: false, // Должны ли мы отслеживать запросы AJAX, чтобы определить, есть ли у нас соединение. interceptRequests: true, // Должны ли мы автоматически периодически повторять тестирование, когда соединение не работает (установите значение false, чтобы отключить). reconnect: { // Сколько секунд нужно подождать перед повторной проверкой. InitialDelay: 3, // Как долго нам следует ждать между повторными попытками. задержка: (1,5 * последняя задержка, ограничена 1 часом) }, // Должны ли мы сохранять и пытаться переделать запросы, которые терпят неудачу, пока соединение не работает. Requests: true, // Должны ли мы показывать игру со змеями, пока соединение не работает, чтобы развлечь пользователя? // Он не включен в обычную сборку, вам следует добавить js/snake.js в дополнение к // offline.min.js. игра: ложь}
Offline.check()
: проверьте текущий статус соединения.
Offline.state
: текущее состояние соединения «вверх» или «вниз».
Offline.on(event, handler, context)
: привязывает событие. События:
вверх: соединение изменилось снизу вверх
down: соединение изменилось сверху вниз
подтверждено: проверка соединения прошла успешно, даже если соединение уже было установлено.
подтверждено отключением: проверка соединения не удалась, запускается, даже если соединение уже было отключено.
проверка: Тестируем соединение
reconnect:started: Мы начинаем процесс переподключения
reconnect:stopped: Мы закончили попытки переподключения
reconnect:tick: срабатывает каждую секунду во время попытки повторного подключения, когда проверка не происходит.
reconnect:connecting: Сейчас мы восстанавливаем соединение
reconnect:failure: попытка проверки повторного подключения не удалась.
запросы:flush: Все ожидающие запросы были переделаны
запросы:capture: новый запрос удерживается
Offline.off(event, handler)
: отменить привязку события.
По умолчанию Offline отправляет запрос XHR на загрузку вашего /favicon.ico
для проверки соединения. Если у вас нет такого файла, в консоли он выдаст ошибку 404, но в остальном все работает нормально (даже ошибка 404 означает, что соединение установлено). Вы можете изменить URL-адрес, на который он попадает (конечная точка, которая ответит быстрым 204, идеальна):
Offline.options = {проверяет: {xhr: {url: '/connection-test'}}};
Убедитесь, что проверяемый URL-адрес имеет то же происхождение, что и ваша страница (метод подключения, домен и порт должны быть одинаковыми), иначе вы столкнетесь с проблемами CORS. Вы можете добавить заголовки Access-Control
к конечной точке, чтобы исправить это в современных браузерах, но это по-прежнему будет вызывать проблемы в IE9 и более ранних версиях.
Если вы хотите запустить тесты на другом домене, попробуйте метод изображения. Он загружает изображения, которым разрешено пересекать домены.
Offline.options = {проверяет: {изображение: {url: 'my-image.gif'}, активно: 'изображение'}}
Единственное предостережение заключается в том, что при использовании метода изображения мы не можем отличить ошибку 404 от реальной проблемы с подключением, поэтому любая ошибка вообще будет отображаться в автономном режиме как проблема с подключением.
В автономном режиме также есть проверка под названием 'up'
и другая, называемая 'down'
, которые всегда сообщают о повышении или понижении температуры соответственно для тестирования. Вы можете активировать их, установив active
опцию, добавив атрибут данных в тег скрипта с именем data-simulate
и значением 'up'
или 'down'
или установив для localStorage.OFFLINE_SIMULATE
значение 'up'
или 'down'
.
Модуль повторного подключения автоматически периодически проверяет соединение, когда оно не работает. Успешный запрос AJAX также вызовет автоматическую повторную проверку (если interceptRequests
не является ложным).
Вы можете отключить модуль переподключения, установив для параметра reconnect
значение false. Повторное подключение можно настроить, задав параметры в настройках повторного подключения.
Модуль запросов хранит все неудачные запросы AJAX и после их дедупликации переделывает их при восстановлении соединения.
Вы можете отключить его, установив для параметра requests
значение false.
Вы также можете установить для deDupBody значение true, если хотите, чтобы при дедупликации также учитывалось содержимое запроса.
Никто!
Современный Chrome, Firefox, Safari и IE8+
Обратите внимание, что не все браузеры (включая Safari и старый IE) поддерживают автономные события, что вынуждает Offline использовать менее точные методы обнаружения.