Browser Persistence Bynet

1,033 views
971 views

Published on

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,033
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Browser Persistence Bynet

    1. 1. Browser Persistence Илья Кантор javascript.ru
    2. 2. <ul><li>Этот доклад прочитан на конференции Байнет 2.2 Beta </li></ul><ul><li>11-12 сентября 2008 года, Минск </li></ul><ul><li>Официальный сайт www.bynet2.org </li></ul>
    3. 3. Persistence? В браузере?! <ul><li>Cookie </li></ul><ul><ul><li>маленькие объекты </li></ul></ul><ul><ul><li>каждый запрос – летят на сервер </li></ul></ul><ul><ul><ul><li>Идеально для сессий </li></ul></ul></ul><ul><li>Persistense </li></ul><ul><ul><li>большие объекты </li></ul></ul><ul><ul><li>никуда не передаются </li></ul></ul><ul><ul><ul><li>Offline- работа </li></ul></ul></ul><ul><ul><ul><li>Интерфейсы </li></ul></ul></ul><ul><ul><ul><ul><li>состояние на клиенте </li></ul></ul></ul></ul>
    4. 4. Средства <ul><li>Google Gears </li></ul><ul><ul><li>РСУБД на клиенте </li></ul></ul><ul><ul><li>плагин к браузеру </li></ul></ul>
    5. 5. Средства <ul><li>WhatWG / HTML 5 </li></ul><ul><li>storage без плагинов </li></ul><ul><ul><li>ключ-значение </li></ul></ul><ul><ul><li>база данных </li></ul></ul><ul><ul><li>Safari </li></ul></ul>
    6. 6. Пример <ul><li>storage = globalStorage[document.domain]   </li></ul><ul><li>storage [' userName '] = 'Vasya ‘ </li></ul><ul><li>alert( storage [ 'userName ']) </li></ul><ul><li>delete storage [ 'userName ']   </li></ul><ul><li>for(var name in storage ) </li></ul><ul><li>… . storage [name]… </li></ul>Размер : 5 MB Безопасность : Same Origin
    7. 7. Средства <ul><ul><li>без ActiveX </li></ul></ul><ul><ul><li>IE-only </li></ul></ul><ul><ul><li>можно поставить Expires </li></ul></ul>userData behavior 5.0+
    8. 8. Пример <ul><li>storage = document.getElementById('storageElement') </li></ul><ul><li>storage.addBehavior (&quot;#default#userData&quot;) </li></ul><ul><li>storage.load (&quot;namespace&quot;) </li></ul><ul><li>storage.setAttribute (key, value) </li></ul><ul><li>var attrs = storage.XMLDocument.documentElement.attributes </li></ul><ul><li>for(var i=0; i<attrs.length; i++) </li></ul><ul><li>… attrs[i].name … attrs[i].value </li></ul>Размер : 128K страница / 1M домен зависит от зоны Безопасность : path + domain + protocol
    9. 9. Средства <ul><ul><li>SQLite в рамках домена </li></ul></ul>HTML5 - БД <ul><ul><li>Safari </li></ul></ul>
    10. 10. Пример db .transaction(function(tx) { tx.executeSql(&quot; SELECT value FROM test WHERE key=? &quot;, [key], function(tx,result) { alert(&quot; Количество: &quot;+ result.rows.length) alert(&quot; Поле value первого результата: &quot;+ result.rows.item(0).value) }, function(tx, error) { alert(&quot;Error!&quot;) } ) }) Размер : 5 MB Безопасность : Домен
    11. 11. Средства <ul><li>Flash SharedObject </li></ul><ul><ul><li>Хранение через вспомогательный Flash - ролик </li></ul></ul><ul><ul><li>~ 97% распространенность </li></ul></ul><ul><ul><li>Многие блокируют Flash из-за баннеров </li></ul></ul><ul><ul><li>Своя схема безопасности </li></ul></ul>
    12. 12. Cross -browser persistence userData 5.0+ WhatWG ключ / значение database storage <ul><ul><li>Safari </li></ul></ul>Flash <ul><ul><li>Konqueror </li></ul></ul><ul><ul><li>Opera </li></ul></ul>Ваши вопросы? Еще примеры : http://javascript.ru/tutorial/storage

    ×