Java

         

Firefox (Gecko). Стандарт HTML 5.


Firefox реализует стандарт хранения "Client-side session and persistent storage of name/value pairs", предложенный в спецификации HTML 5.

Для постоянного хранения данных в нем используется объект window.globalStorage[домен], операции над которым можно производить точно так же, как над обычным javascript-объектом. При уходе с сайта и даже закрытии браузера globalStorage не меняется, так что все его свойства можно прочитать обратно.

Например:

storage = globalStorage[document.domain]

// записать значение

storage['userName'] = 'Vasya'

// прочитать значение

alert(storage['userName'])

// удалить значение

delete storage['userName']

  // получить все значения

for(var name in storage) {

alert(name + ':' + storage[name])

}

При чтении/записи на элементе body инициируется всплывающее событие storage.

Поймать его можно, например, таким обработчиком:

window.addEventListener('storage', function(event) { ... })

Стандарт HTML 5 все еще в процессе развития. В старой редакции прочитанные значения имели тип StorageItem.

Версия Firefox 2.0.0.13 возвращает при чтении объект именно этого типа.

Из текущей редакции StorageItem убран. В ней возвращаемые хранилищем значения имеют более простой тип DOMString.

..А пока эти изменения не учтены разработчиками, рекомендуется преобразовать значения к String явным образом.

Например:

var test = "12345"

storage.test = test // сохранить -> String



test = storage.test // прочитать <- StorageItem

  alert(test.length) // undefined, это же не строка

alert(test.constructor) // StorageItem

test = String(test) // сделали строку. Теперь все ок.



Содержание раздела