localForage предоставляет метод проверки доступности конкретного драйвера в текущем окружении выполнения. Этот метод относится к низкоуровневой диагностике возможностей браузера и используется для определения того, может ли выбранный механизм хранения данных быть использован без инициализации.
localforage.supports(driverName)
driverName (string) Строка, идентифицирующая драйвер хранилища. Допустимые значения:
"INDEXEDDB""WEBSQL""LOCALSTORAGE"Каждое значение соответствует конкретной технологии хранения данных в браузере.
boolean
Метод возвращает логическое значение:
true — драйвер поддерживается текущей средой
выполненияfalse — драйвер недоступен или отключёнМетод supports выполняет синхронную проверку окружения и
не требует обращения к хранилищу данных. Проверка осуществляется на
уровне доступности API браузера.
indexedDB, localStorage,
openDatabase)localforage.supports('INDEXEDDB')
Возвращает true, если браузер предоставляет доступ к
IndexedDB API.
Особенности:
localforage.supports('WEBSQL')
Возвращает true только в браузерах, где WebSQL всё ещё
реализован.
Особенности:
localforage.supports('LOCALSTORAGE')
Возвращает true, если доступен
window.localStorage.
Особенности:
Метод supports используется как базовый фильтр перед
выбором драйвера. Он не инициирует переключение, а лишь сообщает о
возможностях среды.
Типичный сценарий:
INDEXEDDBfalse — проверка WEBSQLLOCALSTORAGEif (localforage.supports('INDEXEDDB')) {
console.log('IndexedDB доступен');
} else {
console.log('IndexedDB недоступен');
}
Метод часто применяется при ручной настройке драйверов:
const driver = localforage.supports('INDEXEDDB')
? localforage.INDEXEDDB
: localforage.LOCALSTORAGE;
localforage.setDriver(driver);
Метод выполняется синхронно, так как не взаимодействует с хранилищем данных и не требует асинхронных операций.
supports не учитывает настройки, заданные через
setDriver. Он проверяет только физическую возможность
среды.
getDriver и setDriver| Метод | Назначение |
|---|---|
supports |
Проверка доступности драйвера |
setDriver |
Установка драйвера |
getDriver |
Получение текущего активного драйвера |
Используется перед инициализацией приложения:
if (!localforage.supports('INDEXEDDB')) {
console.warn('IndexedDB не поддерживается');
}
let driver;
if (localforage.supports('INDEXEDDB')) {
driver = localforage.INDEXEDDB;
} else if (localforage.supports('WEBSQL')) {
driver = localforage.WEBSQL;
} else {
driver = localforage.LOCALSTORAGE;
}
localforage.setDriver(driver);
const capabilities = {
indexedDB: localforage.supports('INDEXEDDB'),
webSQL: localforage.supports('WEBSQL'),
localStorage: localforage.supports('LOCALSTORAGE')
};
console.log(capabilities);
Возвращает false для всех драйверов, так как отсутствует
браузерное API.
Результаты зависят от движка:
Некоторые браузеры отключают localStorage или IndexedDB
в приватных режимах, что приводит к false даже при наличии
API.
Метод имеет нулевую стоимость с точки зрения I/O, так как:
if (localforage.supports('INDEXEDDB')) {
// ошибка: IndexedDB может быть повреждён или заблокирован
}
Метод не гарантирует стабильность, только наличие.
supports не заменяет реальный тест
setItem/getItem.
localforage.setDriver(
localforage.supports('WEBSQL')
);
Ошибка: setDriver требует драйвер, а не boolean.
Метод является частью стратегии адаптивного хранения:
Он используется на этапе конфигурации, а не во время работы приложения.