HTML5 storag´æ´¢Ïê½â
HTML5storage¹©¸øÁËÒ»ÖÖ·½Ê½ÈÃÍøÕ¾Äܹ»°ÑÐÅÏ¢´¢±¸µ½Äãµ±µØµÄÔËËã»úÉÏ£¬²¢ÔÙ½ñºóÐèÒªµÄʱºòÍ£Ö¹ÁÔÈ¡¡£Õâ¸ö¸ÅÄîºÍcookieÀàËÆ£¬²»Í¬ÊÇËüÊÇΪÁ˸ü´óÈÝÁ¿´¢±¸Éè¼ÆµÄ¡£CookieµÄ´óСÊÇÊÜÏ޵ģ¬²¢ÇÒÿ´ÎÄã¿ÒÇóÒ»¸öеÄÒ³ÃæµÄʱºòcookie¶¼»á±»·¢Ë͹ýÈ¥¡£HTML5µÄstorageÊÇ´¢±¸ÔÚÄãµÄÔËËã»úÉÏ£¬ÍøÕ¾ÔÚÒ³Ãæ¼ÓÔØÍê±Ïºó¿ÉÒÔͨ¹ýJavascriptÀ´ÁÔÈ¡ÕâЩÊý¾Ý¡£
1¡¢sessionStorage
¼ì²â
!!window.sessionStorage;
³£Óð취
.key = value
.setItem(key,value)
.getItem(key)
.removeItem(key)
.clear()
window.sessionStorage.name = 'rainman'; // ¸³Öµ window.sessionStorage.setItem('name','cnblogs'); // ¸³Öµ window.sessionStorage.getItem('name'); // È¡Öµ window.sessionStorage.removeItem('name'); // ÒƳýÖµ window.sessionStorage.clear(); // ɾ³ýËùÓÐsessionStorage
ʼþ£º
window.onstorage
¼ì²âÖµµÃת±ä£¬ÔĶÁÆ÷Ö§³Å²»ºÃ¡£
˵Ã÷£º
cookieµÄ´¢±¸ÏÞÖÆÔÚÁË4kÖ®ÄÚ£¬±ÈÄâÀ´Ëµ£¬session storageÓÐÁ˸ü´óµÄ´¢±¸¿Õ¼ä£¬µ«ÖÁÓÚÏêϸ¶à´ó£¬ÕâÒª²ÎÕÕÔĶÁÆ÷³§É̵ÄÏêϸʵÏÖ¡£
cookieÓÐÒ»¸ö»úÖÆ£¬¾ÍÊÇÔÚÿ´Î¿Í»§¶Ë¿ÒÇóЧÀÍÆ÷µÄʱºò¶¼»á½«cookie·¢Ë͸øЧÀÍÆ÷£¬ÕâÎÞÒÉ»á×öÐí¶à²»±ØÒªµÄ²Ù×Ý£¬ÓÉÓÚ²¢²»ÊÇÿ´Î¿ÒÇóЧÀÍÆ÷¶¼ÐèÒªcookieµÄËùÓÐÐÅÏ¢£¬¶øsession storageºÜºÃµÄ½â¾öÁËÕâ¸öÎÊÌ⣬Ëü²»ÊDzÉÈ¡Ö÷¶¯·¢Ë͵ķ½Ê½£¬ÕâÑù¾Í¼õÉÙÁ˲»±ØÒªµÄ¹¤×÷¡£
ͨ¹ýsessionStorageËù´¢±¸Êý¾ÝµÄÉúÃüÖÜÆÚ£¬ºÍSessionÏàËÆ£¬¹Ø±ÕÔĶÁÆ÷£¨»ò±êÇ©Ò³£©ºóÊý¾Ý¾Í²»´æÔÚÁË¡£µ«Ë¢ÐÂÒ³Ãæ»òʹÓá°Ç°½ø¡±¡¢¡°ºóÍË°´Å¥¡±ºósessionStorageÒÀÈ»´æÔÚ¡£
session storageÿ¸ö´°¿ÚµÄÖµ¶¼ÊǶÀÁ¢µÄ£¨Ã¿¸ö´°¿Ú¶¼Óб¾È˵ÄÊý¾Ý£©£¬ËüµÄÊý¾Ý»áËæ×Å´°¿ÚµÄ¹Ø±Õ¶øÏûÊÅ£¬´°¿Ú¼äµÄsessionStorageÒ²ÊDz»³ÉÒÔͬÏíµÄ¡£
setItemÖеÄkey¡¢valueʹÓõÄÊÇ×Ö·û´®µÄÇéÊÆÍ£Ö¹´¢±¸µÄ¡£Ò²¾ÍÊÇ˵¼ÙÈçÓÐÈçϵĴúÂ룺setItem(¡®count¡¯, 1);ͨ¹ýgetItem(¡®count¡¯) + 5 µÃµ½µÄ½«²»ÊÇÔ¤²âµÄ6(ÕûÊý)£¬¶øÊÇ¡¯16¡¯(×Ö·û´®)¡£
ÔÙ´ÎʹÓÃsetItemÉ趨ÒѾ´æÔÚµÄkeyµÄvalueʱ£¬ÐµÄÖµ½«Ìæ»»¾ÉµÄÖµ¡£
µ±´¢±¸ÖеÄÊý¾Ý·¢Éú¸Ä¶¯Ê±£¬»á´¥·¢ÏìÓ¦µÄʼþ£¨window.onstorage£©£¬µ«µ±Ç°¸÷ÔĶÁÆ÷¶Ô´ËʼþµÄÖ§³Å²¢²»ÍêÃÀ£¬ÁÙʱ¿ÉÒÔºöÂÔ¡£
2¡¢localStorage
¼ì²â
!!window.localStorage;
°ì·¨ºÍsessionStorageÀ×ͬ
˵Ã÷£º
local storage°ÑÖ»°ÑÊý¾Ý´¢±¸ÔÚÁË¿Í»§¶ËʹÓ㬲»»á·¢Ë͵ÄЧÀÍÆ÷ÉÏ£¨³ý·ÇÄã³ÉÐÄÕâÑù×ö£©¡£
²¢ÇÒ¹ØÓÚijһ¸öÓòÏÂÀ´Ëµ£¬local storageÊÇͬÏíµÄ£¨¶à¸ö´°¿ÚͬÏíÒ»¸ö¡°Êý¾Ý¿â¡±£©¡£
localStorageÓÃÓÚÄ;û¯µÄµ±µØ´¢±¸£¬³ý·ÇÖ÷¶¯É¾³ýÊý¾Ý£¬²»È»Êý¾ÝÊÇÓÀ¾Ã²»»á¹ýÆڵġ£
¾ÙÀý
//½áºÏJSON.stringifyʹÓøüÇ¿´ó var person = {'name': 'rainman', 'age': 24}; localStorage.setItem("me", JSON.stringify(person)); JSON.parse(localStorage.getItem('me')).name; // 'rainman' /** * JSON.stringify£¬½«JSONÊý¾Ýת»¯Îª×Ö·û´® * JSON.stringify({'name': 'fred', 'age': 24}); // '{"name":"fred","age":24}' * JSON.stringify(['a', 'b', 'c']); // '["a","b","c"]' * JSON.parse£¬·´½âJSON.stringify * JSON.parse('["a","b","c"]') // ["a","b","c"] */
3¡¢Database Storage
¶Ô¼ò±ãµÄÊý¾Ý´¢±¸£¬Ê¹ÓÃsessionStorageºÍlocalStorageÄܹ»ºÜºÃµØÍê³É£¬µ«ÊÇÔÚ¶ÔËöËéµÄ¹ØϵÊý¾ÝÍ£Ö¹´¦ÖÃÖ®Í⣬Ëü¾Í±Þ³¤Äª¼°ÁË¡£¶øÕâÕýÊÇ HTML 5 µÄ¡°Web SQL Database¡±API ½Ó¿ÚµÄÀûÓÃËùÔÚ¡£
A¡¢·¿ªÁ´½Ó
var db = openDatabase("ToDo", "0.1", "A lalert of to do items.", 200000); // ·¿ªÁ´½Ó if(!db) { alert("Failed to connect to database."); } // ¼ì²âÁ¬½Ó¿É·ñ´´Á¢³É¹¦
ÒÔÉÏ´úÂë´´Á¢ÁËÒ»¸öÊý¾Ý¿â¶ÔÏó db£¬Ãû³ÆÊÇ Todo£¬°æ±¾±àºÅΪ0.1¡£db »¹´øÓÐÃèдÐÅÏ¢ºÍ´óÔ¼µÄ´óСֵ¡£¼ÙÈçÐèÒª£¬Õâ¸ö´óСÊÇ¿ÉÒԸĶ¯µÄ£¬ËùÒÔûÓбØÒªÔ¤ÏȼÙÉèͬÒâ»áԱʹÓöàÉٿռ䡣
¾ø²»³ÉÒÔ¼ÙÉè¸ÃÁ¬½ÓÒѾ³É¹¦´´Á¢£¬¼´±ã¹ýÈ¥¹ØÓÚij¸ö»áÔ±ËüÊdzɹ¦µÄ¡£ÎªÊ²Ã´Ò»¸öÁ¬½Ó»áʧ°Ü£¬´æÔÚ¶à¸öÔµÓÉ¡£»òÐí»áÔ±´úÀí³öÓÚƽ°²ÔµÓɻؾøÄãµÄ°Ý·Ã£¬»òÐíÉ豸´¢±¸ÓÐÏÞ¡£ÃæÁÙ»îÆöø¿ìËÙ½ø»¯µÄDZÔÚ»áÔ±´úÀí£¬¶Ô»áÔ±µÄ»úÆ÷¡¢Èí¼þ¼°ÆäÄÜÁ¦×÷³ö¼ÙÉèÊǷdz£²»Ã÷ÖǵÄÐж¯¡£±È·½£¬µ±»áԱʹÓÃÊÖ³ÖÉ豸ʱ£¬ËûÃÇ¿É×ÔÔÚ´¦ÀíµÄÊý¾Ý´ó¸ÅÖ»Òª¼¸Õ××Ö½Ú¡£
B¡¢Ê©Ðвéѯ
db.transaction( function(tx) { tx.executeSql( "INSERT INTO ToDo (label, timestamp) values(?, ?)", ['lebel', new Date().getTime()], function(tx2, result){ alert('³É¹¦'); }, function(tx2, error){ alert('ʧ°Ü:' + error.message); } ); });
Ê©ÐÐSQLÓï¾äʹÓÃdatabase.transaction()º¯Êý£¬¸Ãº¯ÊýÖ»ÒªÒ»¸ö²ÎÊý£¬¸ºÔðÊ©ÐвéѯµÄº¯Êý¡£
¸Ãº¯Êý¾ßÓÐÒ»¸öÀàÐÍÊÂÎñµÄ²ÎÊý£¨tx£©¡£
¸ÃÊÂÎñ²ÎÊý£¨tx£©¾ßÓÐÒ»¸öº¯Êý£ºexecuteSql()¡£Õâ¸öº¯ÊýʹÓÃËĸö²ÎÊý£º
±íʾ²éѯµÄSQL×Ö·û´®£»²åÈëµ½²éѯÖÐÎʺÅËùÔÚ´¦µÄ×Ö·û´®Êý¾Ý£»Ò»¸ö³É¹¦Ê±Ê©Ðеĺ¯Êý£»Ò»¸öʧ°ÜʱʩÐеĺ¯Êý¡£Ê©Ðгɹ¦µÄº¯ÊýÓÐÁ½¸ö²ÎÊý£ºtx2£¬ÊÂÎñÐÔ²ÎÊý£»result£¬Ê©Ðеķµ»Ø½á¹û£¬¹¹ÔìÈçͼ
Ê©Ðгɹ¦µÄº¯ÊýÒ²ÓÐÁ½¸ö²ÎÊý£ºtx2£¬ÊÂÎñÐÔ²ÎÊý£»error£¬´íÎó¶ÔÏ󣬹¹ÔìÈçͼ
C¡¢ÆäËü
ChromeÖ§³Å£» firefox£¨²âÊÔʱ°æ±¾4.01£©²»Ö§³Å£»IE8²»Ö§³Å¡£
D¡¢Ê¾Àý
//´´Á¢Êý¾Ý¿â var db = openDatabase("users", "1.0", "»áÔ±±í", 1024 * 1024); if(!db){ alert("Failed to connect to database."); } else { alert("connect to database 'K'."); } // ´´Á¢±í db.transaction( function(tx) { tx.executeSql( "CREATE TABLE IF NOT EXISTS users (id REAL UNIQUE, name TEXT)", [], function(){ alert('´´Á¢users±í³É¹¦'); }, function(tx, error){ alert('´´Á¢users±íʧ°Ü:' + error.message); } ); }); // ²åÈëÊý¾Ý db.transaction(function(tx) { tx.executeSql( "INSERT INTO users (id, name) values(?, ?)", [Math.random(), 'space'], function(){ alert('²åÈëÊý¾Ý³É¹¦'); }, function(tx, error){ alert('²åÈëÊý¾Ýʧ°Ü: ' + error.message);} ); }); // ²éѯ db.transaction( function(tx) { tx.executeSql( "SELECT * FROM users", [], function(tx, result) { var rows = result.rows, length = rows.length, i=0; for(i; i < length; i++) { alert( 'id=' + rows.item(i)['id'] + 'name='+ rows.item(i)['name'] ); } }, function(tx, error){ alert('Select Failed: ' + error.message); } ); }); // ɾ³ý±í db.transaction(function (tx) { tx.executeSql('DROP TABLE users'); });
4¡¢globalStorage
Õâ¸öÒ²ÊÇhtml5ÖÐÌá³öÀ´£¬ÔÚÔĶÁÆ÷¹Ø±Õ½ñºó£¬Ê¹ÓÃglobalStorage´¢±¸µÄÐÅÏ¢ÈÔÄܹ»±£´æÏÂÀ´£¬localStorageÒ»Ñù£¬ÓòÖÐÈκÎÒ»¸öÒ³Ãæ´¢±¸µÄÐÅÏ¢¶¼Äܱ»ËùÓеÄÒ³ÃæͬÏí
¸ù±¾Óï·¨
globalStorage['developer.mozilla.org'] ¡ª¡ª ÔÚdeveloper.mozilla.orgÏÂÃæËùÓеÄ×ÓÓò¶¼¿ÉÒÔͨ¹ýÕâ¸öÃüÃû¿Õ¼ä´¢±¸¶ÔÏóÀ´Í£Ö¹¶ÁºÍд¡£
globalStorage['mozilla.org'] ¡ª¡ª ÔÚmozilla.orgÓòÃûÏÂÃæµÄËùÓÐÍøÒ³¶¼¿ÉÒÔͨ¹ýÕâ¸öÃüÃû¿Õ¼ä´¢±¸¶ÔÏóÀ´Í£Ö¹¶ÁºÍд¡£
globalStorage['org'] ¡ª¡ª ÔÚ.orgÓòÃûÏÂÃæµÄËùÓÐÍøÒ³¶¼¿ÉÒÔͨ¹ýÕâ¸öÃüÃû¿Õ¼ä´¢±¸¶ÔÏóÀ´Í£Ö¹¶ÁºÍд¡£
globalStorage[''] ¡ª¡ª ÔÚÈκÎÓòÃûϵÄÈκÎÍøÒ³¶¼¿ÉÒÔͨ¹ýÕâ¸öÃüÃû¿Õ¼ä´¢±¸¶ÔÏóÀ´Í£Ö¹¶ÁºÍд
°ì·¨ÊôÐÔ
setItem(key, value) ¡ª¡ª É趨»òÖØÖà key Öµ¡£
getItem(key) ¡ª¡ª ÁÔÈ¡ key Öµ¡£
removeItem(key) ¡ª¡ª ɾ³ý key Öµ¡£
É趨 key Öµ£ºwindow.globalStorage["planabc.net"].key = value;
ÁÔÈ¡ key Öµ£ºvalue = window.globalStorage["planabc.net"].key;
ÆäËü
¹ýÆÚʱ¼äͬ localStorage£¬ÆäËüµÄһЩÌØÐÔÒ²ºÍlocalStorageÀàËÆ¡£
´Ë¿ÌFirefoxÖ»Ö§³Åµ±Ç°ÓòϵÄglobalStorage´¢±¸£¬ ¼ÙÈçʹÓù«ÓÃÓò»áÖÂʹһ¸öÕâÑùÒ»¸öÏàËƵĴíÎó¡°Security error¡± code: ¡°1000¡±¡£
5¡¢¼æÈÝÐÔ
°ì·¨ | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
localStorage | 4 | 2 | 8 | 10.50 | 4 |
sessionStorage | 5 | 2 | 8 | 10.50 | 4 |
globalStorage | -- | 2 | -- | -- | -- |
Ïà¹ØÒý¼ö£º
vuex+localstorage¶¯Ì¬¼àÌýstorage²½ÖèÏê½â
HTMl5µÄ´¢±¸·½Ê½sessionStorageºÍlocalStorageÏê½â
vuex½áºÏlocalstorage¶¯Ì¬¼àÌýstorageµÄת±ä
ÒÔÉϾÍÊÇHTML5 storag´¢±¸Ïê½âµÄ¾ßÌåÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢°Ù·Ö°ÙÔ´ÂëÍøÆäËüÏà¹ØÎÄÕ£¡
¸ÐлÄúµÄÖ§³Ö£¬ÎÒ»á¼ÌÐøŬÁ¦µÄ!
´ò¿ªÖ§¸¶±¦É¨Ò»É¨£¬¼´¿É½øÐÐɨÂë´òÉÍŶ
°Ù·Ö°ÙÔ´ÂëÍø ½¨Òé´òÉÍ1¡«10Ôª£¬ÍÁºÀËæÒ⣬¸ÐлÄúµÄÔĶÁ£¡