LocalForage - это быстрый и простой репозиторий JavaScript. LocalForage улучшает опыт работы в автономном режиме веб-приложений, используя асинхронное хранилище (IndexedDB или WebSQL) и простой API LocalStorage, похожий на LocalStorage.
В браузерах, которые не поддерживают IndexedDB или WebSQL, LocalForage использует LocalStorage. Смотрите вики для деталей совместимости.
Используя LocalForage, просто поместите файл JavaScript в страницу:
< script src =" localforage/dist/localforage.js " > </ script >
< script > localforage . getItem ( 'something' , myCallback ) ; </ script >Попробуйте пример.
Загрузите новейшие локальные заводы на GitHub или установите через NPM:
npm install localforageИли через Bower:
bower install localforageLocalForage также совместима с браузерером.
Чувствуете растерянность? Нужна помощь? Попробуйте документацию по API LocalForage.
Если вы используете эту библиотеку, запускаете тесты или хотите внести свой вклад в LocalForage, посетите irc.freenode.net и проконсультируйтесь с каналом #localforage по вопросам о LocalForage.
Лучший консультант - Тофуматт , чье онлайн -время, как правило, составляет 10:00 - 8 вечера Гринвич.
Начиная с Safari 10.1, по умолчанию INEXEDDB; Смотрите изменение изменений.
Поскольку LocalForage использует асинхронное хранилище, API является асинхронным. В других отношениях он точно такой же, как и API LocalStorage.
LocalForage поддерживает два API, вы можете использовать форму функции обратного вызова или обещание. Если вы не уверены, какой из них лучше для вас, то рекомендуется использовать обещание.
Вот пример формы функции обратного вызова:
localforage . setItem ( 'key' , 'value' , function ( err ) {
// 若 err 不为 null,则表示出错
localforage . getItem ( 'key' , function ( err , value ) {
// 若 err 不为 null,则表示出错,否则 value 为 key 对应的值
} ) ;
} ) ;Формат обещания:
localforage . setItem ( 'key' , 'value' ) . then ( function ( ) {
return localforage . getItem ( 'key' ) ;
} ) . then ( function ( value ) {
// 成功获取值
} ) . catch ( function ( err ) {
// 出错了
} ) ;Для получения дополнительных примеров, пожалуйста, посетите документацию API.
Вы можете хранить любой тип в LocalForage; В отличие от Local Storage, хранятся только строки. Даже если форма хранения бэкэнда является LocalStorage, LocalForage автоматически выполнит JSON.parse() и JSON.stringify() когда необходимо получить/установить значение.
Пока это нативный объект JS, который может быть сериализован в JSON, можно хранить LocalForage, включая ArrayBuffers, Blobs и TypedArrays. В документации API вы можете просмотреть все типы поддержки LocalForage.
Все драйверы хранения бэкэнд поддерживают все типы, но LocalStorage имеет ограничения на хранение, поэтому большие капли не могут быть сохранены.
Вы можете установить информацию о базе данных с помощью метода config() . Доступными параметрами являются driver , name , storeName , version , size и description .
Пример:
localforage . config ( {
driver : localforage . WEBSQL , // 使用 WebSQL;也可以使用 setDriver()
name : 'myApp' ,
version : 1.0 ,
size : 4980736 , // 数据库的大小,单位为字节。现仅 WebSQL 可用
storeName : 'keyvaluepairs' , // 仅接受字母,数字和下划线
description : 'some description'
} ) ; ** ПРИМЕЧАНИЕ: ** Перед взаимодействием с данными вы должны сначала позвонить config() . То есть вы должны вызвать config() перед использованием getItem() , setItem() , removeItem() clear() , key() , keys() или length() .
С помощью метода createInstance вы можете создать несколько экземпляров LocalForage, которые могут указывать на различные хранилища данных. Все параметры конфигурации в конфигурации доступны.
var store = localforage . createInstance ( {
name : "nameHere"
} ) ;
var otherStore = localforage . createInstance ( {
name : "otherName"
} ) ;
// 设置某个数据仓库 key 的值不会影响到另一个数据仓库
store . setItem ( "key" , "value" ) ;
otherStore . setItem ( "key" , "value2" ) ; Вы можете использовать LocalForage через requirejs:
define ( [ 'localforage' ] , function ( localforage ) {
// 作为回调函数
localforage . setItem ( 'mykey' , 'myvalue' , console . log ) ;
// 使用 Promise
localforage . setItem ( 'mykey' , 'myvalue' ) . then ( console . log ) ;
} ) ; LocalForage 1.3+ поддерживает браузерериф и WebPack. Если вы используете более раннюю версию LocalForage и у вас есть проблемы с браузерофирией или WebPack, обновите до 1.3.0 или более поздней версии.
При предварительном сборе обычного файла JavaScript Webpack может вызвать предупреждающее сообщение. Если вы не хотите видеть предупреждение, вы можете использовать следующую конфигурацию, чтобы игнорировать localforage при анализе WebPack:
module : {
noParse : / node_modules/localforage/dist/localforage.js / ,
loaders : [ ... ] , Если вы установите опцию компиляции allowSyntheticDefaultImports на true в tsconfig.json (поддерживает TypeScript v1.8+), то вы должны использовать его так:
import localForage from "localforage" ;В противном случае вы должны использовать один из следующих методов:
import * as localForage from "localforage" ;
// 若你用的 TypeScript 版本不支持 ES6 风格导入像 localForage 这样的 UMD 模块,则用如下方式导入:
import localForage = require ( "localforage" ) ; Если вы используете следующую структуру, LocalForage предоставляет модули в качестве драйверов для этих структур, и вы можете хранить данные в автономном режиме через LocalForage. Поддерживаемые фрейв -драйверы следующие:
Если у вас есть другие драйверы и вы хотите добавить их в этот список, отправьте проблему.
Вы можете создать своих собственных драйверов; Смотрите документацию defineDriver API.
В вики есть список пользовательских драйверов.
Вам нужно иметь узел/NPM и Bower.
Чтобы разработать LocalForage, вам нужно сначала раскошелиться и установить зависимости. Замените USERNAME своим именем пользователя GitHub и запустите следующую команду:
# 若你没有安装过 bower,则需要先全局安装 bower
npm install -g bower
# 将 USERNAME 替换为你的 GitHub 用户名:
git clone [email protected]:USERNAME/localForage.git
cd localForage
npm install
bower installОтсутствующие зависимости Bower приведут к сбое тестов!
Phantomjs требуется для выполнения локальных тестов. Выполнить npm test (или напрямую: grunt test ). Ваш код должен пройти проверку Linter.
LocalForage может работать только в браузере, поэтому для выполнения тестов требуется среда браузера. Локальные тесты работают в безголовом браузере Webkit (с использованием Phantomjs).
Через Sauce Labs LocalForage поддерживает Travis CI, и тесты будут автоматически выполняться во всех браузерах при получении запроса.
Эта программа является бесплатным программным обеспечением; Лицензионное соглашение является лицензией Apache.
Авторские права (C) 2013-2016 Mozilla (участники).