[Переклад] Cross-Storage: Зробіть локальні дані доступними між доменами

       image
 
Як ми знаємо localStorage API має деякі обмеження, які, можливо, доведеться обходити при написанні великих додатків. Нова бібліотека cross-storage * дає можливість меж-доменної підтримки localStorage з використанням повноважень. Дана бібліотека так само включає в себе Promise API для стандарту ES6 .
 
Cross-storage використовує два компонента: хаби (hubs) і клієнтів (clients). Хаби можуть виставляти повноваження залежно від домену і це є ніщо інше як примусове використання принципу однакового джерела . Зазначена бібліотека включає в себе такі типи доступу як читання, запис, і видалення (
get, set, del
).
 
 
CrossStorageHub.init([
  { origin: /\.example.com$/, allow: ['get'] },
  { origin: /:(www\.)?example.com$/, allow: ['get', 'set', 'del'] }
]);

Клієнт в свою чергу зможе отримати доступ до хабу наступним чином:
 
 
var storage = new CrossStorageClient('https://store.example.com/hub.html');

storage.onConnect().then(function() {
  // Set a key with a TTL of 90 seconds
  return storage.set('newKey', 'foobar', 90000);
}).then(function() {
  return storage.get('existingKey', 'newKey');
}).then(function(res) {
  console.log(res.length); // 2
}).catch(function(err) {
  // Handle error
});

Зверніть увагу що метод
onConnect
повертає promise яке виконується коли з'єднання з хабом було встановлено. Ви так само можете викликати
storage.close
під кінець з'єднання, який реалізований з використанням
iframe
.
 
Данієль рекомендує використовувати Поліфем es6-promise для старих браузерів.
 
Проект використовує Gulp для зборки клієнтського коду і так само поставляється в комплекті з тестами на zuul .
 
 
Позначки
* Бібліотека cross-storage, ліцензія: Apache 2.0, npm: cross-storage , bower:
cross-storage
, автор: Daniel St. Jules
  
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.