°Ù·Ö°ÙÔ´ÂëÍø-Èý¨Õ¾±äµÃÈç´Ë¼òµ¥£¡ µÇ¼ ×¢²á Ç©µ½Áì½ð±Ò£¡

Ö÷Ò³ | ÈçºÎÉý¼¶VIP | TAG±êÇ©

µ±Ç°Î»ÖÃ: Ö÷Ò³>ÍøÕ¾½Ì³Ì>html5½Ì³Ì> HTML5 storag´æ´¢Ïê½â
·ÖÏíÎÄÕµ½£º

HTML5 storag´æ´¢Ïê½â

·¢²¼Ê±¼ä£º09/01 À´Ô´£ºÎ´Öª ä¯ÀÀ£º ¹Ø¼ü´Ê£º
±¾ÆªÎÄÕÂÖ÷Òª½éÉÜ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

¼ì²âÖµµÃת±ä£¬ÔĶÁÆ÷Ö§³Å²»ºÃ¡£


˵Ã÷£º



  1. cookieµÄ´¢±¸ÏÞÖÆÔÚÁË4kÖ®ÄÚ£¬±ÈÄâÀ´Ëµ£¬session storageÓÐÁ˸ü´óµÄ´¢±¸¿Õ¼ä£¬µ«ÖÁÓÚÏêϸ¶à´ó£¬ÕâÒª²ÎÕÕÔĶÁÆ÷³§É̵ÄÏêϸʵÏÖ¡£

  2. cookieÓÐÒ»¸ö»úÖÆ£¬¾ÍÊÇÔÚÿ´Î¿Í»§¶Ë¿ÒÇóЧÀÍÆ÷µÄʱºò¶¼»á½«cookie·¢Ë͸øЧÀÍÆ÷£¬ÕâÎÞÒÉ»á×öÐí¶à²»±ØÒªµÄ²Ù×Ý£¬ÓÉÓÚ²¢²»ÊÇÿ´Î¿ÒÇóЧÀÍÆ÷¶¼ÐèÒªcookieµÄËùÓÐÐÅÏ¢£¬¶øsession storageºÜºÃµÄ½â¾öÁËÕâ¸öÎÊÌ⣬Ëü²»ÊDzÉÈ¡Ö÷¶¯·¢Ë͵ķ½Ê½£¬ÕâÑù¾Í¼õÉÙÁ˲»±ØÒªµÄ¹¤×÷¡£

  3. ͨ¹ýsessionStorageËù´¢±¸Êý¾ÝµÄÉúÃüÖÜÆÚ£¬ºÍSessionÏàËÆ£¬¹Ø±ÕÔĶÁÆ÷£¨»ò±êÇ©Ò³£©ºóÊý¾Ý¾Í²»´æÔÚÁË¡£µ«Ë¢ÐÂÒ³Ãæ»òʹÓá°Ç°½ø¡±¡¢¡°ºóÍË°´Å¥¡±ºósessionStorageÒÀÈ»´æÔÚ¡£

  4. session storageÿ¸ö´°¿ÚµÄÖµ¶¼ÊǶÀÁ¢µÄ£¨Ã¿¸ö´°¿Ú¶¼Óб¾È˵ÄÊý¾Ý£©£¬ËüµÄÊý¾Ý»áËæ×Å´°¿ÚµÄ¹Ø±Õ¶øÏûÊÅ£¬´°¿Ú¼äµÄsessionStorageÒ²ÊDz»³ÉÒÔͬÏíµÄ¡£

  5. setItemÖеÄkey¡¢valueʹÓõÄÊÇ×Ö·û´®µÄÇéÊÆÍ£Ö¹´¢±¸µÄ¡£Ò²¾ÍÊÇ˵¼ÙÈçÓÐÈçϵĴúÂ룺setItem(¡®count¡¯, 1);ͨ¹ýgetItem(¡®count¡¯) + 5 µÃµ½µÄ½«²»ÊÇÔ¤²âµÄ6(ÕûÊý)£¬¶øÊÇ¡¯16¡¯(×Ö·û´®)¡£

  6. ÔÙ´ÎʹÓÃsetItemÉ趨ÒѾ­´æÔÚµÄkeyµÄvalueʱ£¬ÐµÄÖµ½«Ìæ»»¾ÉµÄÖµ¡£

  7. µ±´¢±¸ÖеÄÊý¾Ý·¢Éú¸Ä¶¯Ê±£¬»á´¥·¢ÏìÓ¦µÄʼþ£¨window.onstorage£©£¬µ«µ±Ç°¸÷ÔĶÁÆ÷¶Ô´ËʼþµÄÖ§³Å²¢²»ÍêÃÀ£¬ÁÙʱ¿ÉÒÔºöÂÔ¡£

2¡¢localStorage

¼ì²â

!!window.localStorage;

°ì·¨ºÍsessionStorageÀ×ͬ

˵Ã÷£º

  1. local storage°ÑÖ»°ÑÊý¾Ý´¢±¸ÔÚÁË¿Í»§¶ËʹÓ㬲»»á·¢Ë͵ÄЧÀÍÆ÷ÉÏ£¨³ý·ÇÄã³ÉÐÄÕâÑù×ö£©¡£

  2. ²¢ÇÒ¹ØÓÚijһ¸öÓòÏÂÀ´Ëµ£¬local storageÊÇͬÏíµÄ£¨¶à¸ö´°¿ÚͬÏíÒ»¸ö¡°Êý¾Ý¿â¡±£©¡£

  3. 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); }  
            );   
            });


  1. Ê©ÐÐSQLÓï¾äʹÓÃdatabase.transaction()º¯Êý£¬¸Ãº¯ÊýÖ»ÒªÒ»¸ö²ÎÊý£¬¸ºÔðÊ©ÐвéѯµÄº¯Êý¡£

  2. ¸Ãº¯Êý¾ßÓÐÒ»¸öÀàÐÍÊÂÎñµÄ²ÎÊý£¨tx£©¡£

  3. ¸ÃÊÂÎñ²ÎÊý£¨tx£©¾ßÓÐÒ»¸öº¯Êý£ºexecuteSql()¡£Õâ¸öº¯ÊýʹÓÃËĸö²ÎÊý£º
    ±íʾ²éѯµÄSQL×Ö·û´®£»²åÈëµ½²éѯÖÐÎʺÅËùÔÚ´¦µÄ×Ö·û´®Êý¾Ý£»Ò»¸ö³É¹¦Ê±Ê©Ðеĺ¯Êý£»Ò»¸öʧ°ÜʱʩÐеĺ¯Êý¡£

  4. Ê©Ðгɹ¦µÄº¯ÊýÓÐÁ½¸ö²ÎÊý£ºtx2£¬ÊÂÎñÐÔ²ÎÊý£»result£¬Ê©Ðеķµ»Ø½á¹û£¬¹¹ÔìÈçͼ

  5. Ê©Ðгɹ¦µÄº¯ÊýÒ²ÓÐÁ½¸ö²ÎÊý£º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Ôª£¬ÍÁºÀËæÒ⣬¸ÐлÄúµÄÔĶÁ£¡

¹²ÓÐ151ÈËÔĶÁ£¬ÆÚ´ýÄãµÄÆÀÂÛ£¡·¢±íÆÀÂÛ
êdzƣº ÍøÖ·£º ÑéÖ¤Â룺 µã»÷ÎÒ¸ü»»Í¼Æ¬
×îÐÂÆÀÂÛ

±¾ÎıêÇ©

¹ã¸æÔÞÖú

ÄܳöÒ»·ÖÁ¦ÊÇÒ»·Ö°É£¡

¶©ÔÄ»ñµÃ¸ü¶àÄ£°å

±¾ÎıêÇ©

¹ã¸æÔÞÖú

¶©ÔÄ»ñµÃ¸ü¶àÄ£°å