³£¼ûä¯ÀÀÆ÷¶ËµÄ´æ´¢¼¼Êõ£¨ä¯ÀÀÆ÷´æ´¢·½Ê½µÄ±È½Ï£©

Éú»î³£Ê¶ 2025-05-22 14:04Éú»î³£Ê¶www.baidianfengw.cn

ÎÒÊÇEcha¡£½ñÌìÎÒÏëºÍ´ó¼ÒÁÄÒ»ÁĹØÓÚä¯ÀÀÆ÷Êý¾Ý´æ´¢µÄ»°Ìâ¡£µ±ÎÒÃÇ̸ÂÛä¯ÀÀÆ÷µÄ˽Ãܱ£´æÊ±£¬ÆäʵÊÇÔÚÌÖÂÛä¯ÀÀÆ÷ÈçºÎ¹ÜÀíºÍ´æ´¢ÎÒÃǵÄÊý¾Ý¡£½ÓÏÂÀ´£¬ÎÒ½«½éÉܼ¸ÖÖ³£¼ûµÄä¯ÀÀÆ÷Êý¾Ý´æ´¢·½°¸£ºlocalStorage¡¢sessionStorage¡¢IndexedDBÒÔ¼°Cookies¡£

ÈÃÎÒÃÇÀ´¸ÅÊöÒ»ÏÂÕâЩ´æ´¢»úÖÆ¡£ÔÚÏÖ´úä¯ÀÀÆ÷ÖУ¬ÎÒÃÇ¿ÉÒÔͨ¹ý´ò¿ªä¯ÀÀÆ÷µÄ¿ØÖÆÌ¨À´²é¿´ºÍ¹ÜÀíÕâЩ´æ´¢»úÖÆ¡£ÔÚApplicationÑ¡ÏÖУ¬ÎÒÃÇ¿ÉÒÔÔÚStorageÀï¿´µ½Local Storage¡¢Session Storage¡¢IndexedDBµÈÑ¡Ïî¡£ÄÇô£¬Ê²Ã´Çé¿öÏÂÎÒÃÇ»áÑ¡Ôñ½«Êý¾Ý´æ´¢ÔÚä¯ÀÀÆ÷ÖÐÄØ£¿

ÔÚä¯ÀÀÆ÷´æ´¢Öб£´æÓ¦ÓÃ״̬ÊÇÒ»¸ö³£¼ûµÄʹÓó¡¾°¡£±ÈÈ磬ÎÒÃÇ¿ÉÒÔ±£´æÓû§Æ«ºÃ£¬ÈçÓû§Ìض¨µÄÉèÖã¬ÀýÈçÁÁģʽ»ò°µÄ£Ê½¡¢×ÖÌå´óСµÈ¡£ÎÒÃÇ»¹¿ÉÒÔ´´½¨ÀëÏß¹¤×÷µÄ½¥½øÊ½WebÓ¦Ó㬳ýÁ˳õʼÏÂÔØºÍ¸üÐÂÖ®Í⣬ÎÞÐè·þÎñÆ÷¶ËµÄÒªÇó¡£ÎÒÃÇ»¹¿ÉÒÔ»º´æ¾²Ì¬Ó¦ÓÃ×ÊÔ´£¬ÈçHTML¡¢CSS¡¢JSºÍͼÏñµÈ¡£±£´æÉÏÒ»¸öä¯ÀÀ»á»°ÖеÄÊý¾ÝÒ²ÊÇÒ»¸öÖØÒªµÄÓ¦Óó¡¾°£¬ÀýÈç´æ´¢ÉÏÒ»¸ö»á»°ÖеĹºÎï³µÄÚÈÝ£¬´ý°ìÊÂÏîÁбíÖеÄÏîÄ¿µÈ¡£

½ÓÏÂÀ´£¬ÎÒ½«Ïêϸ½éÉÜÕ⼸ÖÖ´æ´¢·½Ê½µÄʹÓ÷½Ê½¡¢Ê¹Óó¡¾°ÒÔ¼°ËüÃÇÖ®¼äµÄÇø±ð¡£

Ê×ÏÈÊÇWeb Storage£¬Ëü°üÀ¨ÁËlocalStorageºÍsessionStorage¡£HTML5ÒýÈëÁËWeb Storage£¬Ê¹µÃÔÚä¯ÀÀÆ÷Öд洢ºÍ¼ìË÷Êý¾Ý±äµÃ¸ü¼ÓÈÝÒס£Web Storage APIΪ¿Í»§¶Ëä¯ÀÀÆ÷ÌṩÁ˰²È«´æ´¢ºÍÇáËÉ·ÃÎʼüÖµ¶ÔµÄ»úÖÆ¡£

localStorageÓÃÓÚ´æ´¢³Ö¾ÃÊý¾Ý£¬³ý·ÇÓû§ÊÖ¶¯´Óä¯ÀÀÆ÷ÖÐɾ³ý£¬·ñÔòÊý¾Ý½«ÖÕÉí´æ´¢¡£¼´Ê¹¹Ø±Õ´°¿Ú»òÑ¡Ï£¬ËüÒ²²»»á¹ýÆÚ¡£¶øsessionStorageÔòÓÃÓÚ´æ´¢ÁÙʱ»á»°Êý¾Ý£¬ÕâЩÊý¾ÝÔÚÒ³ÃæÖØÐ¼ÓÔØºóÈÔÈ»´æÔÚ£¬µ«¹Ø±Õä¯ÀÀÆ÷Ñ¡ÏʱÊý¾Ý»á¶ªÊ§¡£

Web Storage APIÓɼ¸¸ö·½·¨×é³É£ºsetItem()ÓÃÓÚ´æ´¢Êý¾Ý£¬getItem()ÓÃÓÚ¼ìË÷Êý¾Ý£¬removeItem()ÓÃÓÚɾ³ýÊý¾Ý£¬clear()ÓÃÓÚÇå³ýËùÓд洢µÄÊý¾Ý£¬ÒÔ¼°key()ÓÃÓÚ»ñÈ¡Êý¾ÝµÄËùÓÐkey¡£

³ýÁËWeb Storage£¬ÎÒÃÇ»¹ÓÐIndexedDBºÍCookiesµÈÆäËû´æ´¢·½°¸¡£Ã¿ÖÖ·½°¸¶¼ÓÐÆä¶ÀÌØµÄÓÅÊÆºÍÊÊÓó¡¾°¡£ÔÚÑ¡ÔñʹÓÃÄÄÖÖ·½°¸Ê±£¬ÎÒÃÇÐèÒª¸ù¾Ý¾ßÌåµÄÓ¦ÓÃÐèÇóºÍ³¡¾°À´×ö³ö¾ö²ß¡£ÐèҪעÒâµÄÊÇ£¬ÓÉÓÚʵÏÖ²îÒ죬ä¯ÀÀÆ÷´æ´¢»úÖÆÔÚ²»Í¬ä¯ÀÀÆ÷ÖеÄÐÐΪ¿ÉÄÜ»áÓÐËù²»Í¬¡£ÔÚ¿ª·¢¹ý³ÌÖУ¬ÎÒÃÇÐèÒª¿¼Âǵ½¼æÈÝÐÔÎÊÌâ¡£

½«Êý¾Ý´æ´¢ÔÚ¿Í»§¶Ëä¯ÀÀÆ÷ÖпÉÒÔ¼õÉÙ¶îÍâÇÒ²»±ØÒªµÄ·þÎñÆ÷µ÷Ó㬲¢°ïÖúÌṩÀëÏßÖ§³Ö¡£ÎÒÃÇÒ²ÐèÒª¸ù¾Ý¾ßÌåµÄÐèÇóºÍ³¡¾°Ñ¡ÔñºÏÊʵĴ洢·½°¸¡£Ï£Íû½ñÌìµÄ·ÖÏíÄܶÔÄãÓÐËù°ïÖú¡£ÔÚWeb¿ª·¢ÖУ¬`localStorage`ºÍ`sessionStorage`Êdz£Óõı¾µØ´æ´¢¹¤¾ß£¬ËüÃÇÔÊÐíÎÒÃÇÔÚÓû§µÄä¯ÀÀÆ÷ÉÏ´æ´¢Êý¾Ý£¬ÒÔ±ã¿ìËÙ·ÃÎʺÍÖØ¸´Ê¹Óá£ÒÔÏÂÊǹØÓÚÕâÁ½¸ö´æ´¢»úÖÆµÄÉîÈëºÍÉú¶¯ÃèÊö¡£

µ±ÎÒÃÇ̸ÂÛ`localStorage`ºÍ`sessionStorage`ʱ£¬ÎÒÃÇÊ×ÏÈ×¢Òâµ½ËüÃÇ·µ»ØµÄÀàÐÍÊÇ¡°Object¡±¡£ÕâÒâζ×ÅÎÒÃÇ¿ÉÒÔʹÓÃËüÃÇÀ´´æ´¢¸÷ÖÖÀàÐ͵ÄÊý¾Ý¡£ÀýÈ磬ÎÒÃÇ¿ÉÒÔÕâÑù´æ´¢Êý¾Ý£º

```javascript

localStorage.setItem("colorMode", "dark");

localStorage.setItem("username", "zhangsan");

localStorage.setItem("favColor", "green");

```

ͨ¹ý`console.log(localStorage.length)`£¬ÎÒÃÇ¿ÉÒÔÖªµÀµ±Ç°´æ´¢Á˶àÉÙ¸öÏîÄ¿£¬ÕâÀïÊä³öµÄÊÇ3¡£

Òª´Ó´æ´¢ÖмìË÷Êý¾Ý£¬ÎÒÃÇ¿ÉÒÔʹÓÃ`getItem()`·½·¨¡£ÀýÈ磬Ҫ»ñÈ¡ÑÕɫģʽ£¬ÎÒÃÇ¿ÉÒÔÕâÑù×ö£º

```javascript

console.log(localStorage.getItem("colorMode")); // Êä³ö "dark"

```

Èç¹ûÐèҪɾ³ýij¸ö´æ´¢Ï¿ÉÒÔʹÓÃ`removeItem()`·½·¨¡£ÀýÈ磬ɾ³ýÑÕɫģʽ£º

```javascript

localStorage.removeItem("colorMode");

```

Ö®ºó£¬¸ÃÏîÄ¿µÄ¼ü½«²»ÔÙ´æÔÚ£¬ÎÒÃÇ¿ÉÒÔͨ¹ý`localStorage.key(index)`À´»ñÈ¡´æ´¢ÖеļüÃû¡£ÀýÈ磬µÚÒ»¸ö¼üÃûÊÇ¡°favColor¡±¡£

Èç¹ûÐèÒªÇå¿ÕËùÓд洢µÄÊý¾Ý£¬¿ÉÒÔʹÓÃ`clear()`·½·¨¡£Õ⽫ɾ³ýËùÓÐÏîÄ¿£¬Ê¹`localStorage.length`±äΪ0¡£

³ýÁË»ù±¾µÄ´æ´¢ºÍ¼ìË÷¹¦ÄÜÍ⣬`localStorage`ºÍ`sessionStorage`»¹ÌṩÁ˹ØÓÚÊý¾Ý±ä»¯µÄ֪ͨ»úÖÆ¡£ÎÒÃÇ¿ÉÒÔͨ¹ý¼àÌý¡°storage¡±Ê¼þÀ´×·×ÙÕâЩ±ä»¯¡£µ±´´½¨¡¢¸üлòɾ³ýÏîĿʱ£¬´Ëʼþ½«±»´¥·¢¡£Õâ¶ÔÓÚͬ²½¶à¸öä¯ÀÀÆ÷Ñ¡Ï»ò´°¿ÚÉϵÄÊý¾Ý·Ç³£ÓÐÓá£ÐèҪעÒâµÄÊÇ£¬ÕâÖÖʼþ²»»áÔÚ·¢Éú¸ü¸ÄµÄͬһä¯ÀÀÆ÷Ñ¡ÏÉÏ´¥·¢£¬¶øÊÇÔÚͬһÓòµÄÆäËû´ò¿ªµÄÑ¡Ï»ò´°¿Ú´¥·¢¡£

ʹÓÃÕâЩ±¾µØ´æ´¢»úÖÆÊ±£¬ÎÒÃDZØÐë×¢ÒâһЩÏÞÖÆ¡£×îÖØÒªµÄÒ»µãÊÇËüÃÇÖ»ÄÜ´æ´¢5MBµÄÊý¾Ý¡£³¢ÊÔ´æ´¢³¬¹ý´ËÏÞÖÆµÄÊý¾Ý½«µ¼Ö´íÎó¡£ËüÃÇÖ»ÄܽÓÊÜ×Ö·û´®×÷ΪÊäÈë¡£Èç¹ûÎÒÃdz¢ÊÔ´æ´¢ÆäËûÊý¾ÝÀàÐÍ£¬ÈçÊý×é»ò¶ÔÏ󣬱ØÐëÊ×ÏȽ«Æäת»»Îª×Ö·û´®¡£

ÔÚǰ¶Ë¿ª·¢ÖУ¬ÎÒÃǾ­³£ÐèÒª½«Êý¾Ý´æ´¢ÔÚÓû§µÄä¯ÀÀÆ÷ÖУ¬ÒÔ±ãÔÚÓû§Ï´ηÃÎÊÍøÕ¾Ê±¿ÉÒÔ¼ÌÐøÊ¹ÓÃ֮ǰµÄ״̬»òÅäÖá£Web Storage ºÍ Cookie ÊÇÁ½ÖÖ³£Óõļ¼Êõ£¬ÓÃÓÚʵÏÖÕâÒ»¹¦ÄÜ¡£ÈÃÎÒÃÇÉîÈëÁ˽âÈçºÎʹÓà Web Storage ÖÐµÄ localStorage ÒÔ¼°ÈçºÎÓë Cookie ½øÐжԱȡ£

ÈÃÎÒÃÇͨ¹ý Web Storage µÄÁ½¸ö·½·¨ ON.stringify ºÍ ON.parse À´´¦Àí¶ÔÏó´æ´¢ÎÊÌâ¡£¼ÙÉèÎÒÃÇÓÐÒ»¸öÓû§¶ÔÏ󣬰üº¬ÐÕÃû¡¢ÄêÁä¡¢ÐÔ±ðºÍÖ°ÒµµÈÊôÐÔ¡£ÎÒÃÇ¿ÉÒÔÏȽ«¶ÔÏóת»»Îª×Ö·û´®£¬È»ºó´æ´¢ÔÚ localStorage ÖС£Ö®ºó£¬ÎÒÃÇ¿ÉÒÔÔÙ´Î´Ó localStorage ÖлñÈ¡¸Ã×Ö·û´®²¢½«Æä»ØÔ­Ê¼¶ÔÏó¡£Ê¾Àý´úÂëÈçÏ£º

¼ÙÉèÓÐÒ»¸öÓû§¶ÔÏó£º

```javascript

const user = {

name: "zhangsan",

age: 28,

gender: "male",

profession: "lawyer"

};

localStorage.setItem("user", ON.stringify(user));

```

ʹÓà `ON.stringify` ½«¶ÔÏóת»»Îª×Ö·û´®²¢´æ´¢£º

```javascript

// ´æ´¢ºóµÄ×Ö·û´®ÐÎʽΪ£º{"name":"zhangsan","age":28,"gender":"male","profession":"lawyer"}

```

ÔÙʹÓà `ON.parse` ½«×Ö·û´®»Ø¶ÔÏó£º

```javascript

ON.parse(localStorage.getItem("user"))

// ½á¹ûΪ£º{name: "zhangsan", age: 28, gender: "male", profession: "lawyer"}

```

Èç¹ûÖ±½Ó½«¶ÔÏó´æ´¢ÔÚ localStorage ÖУ¬ä¯ÀÀÆ÷»á½øÐÐÒþʽÀàÐÍת»»£¬½«¶ÔÏóת»»Îª×Ö·û´®ÐÎʽ½øÐд洢¡£ÕâÖÖ´æ´¢·½Ê½¿ÉÄÜ»áÒòΪ¶ÔÏóµÄ¸´Ôӽṹ¶øµ¼ÖÂÊý¾Ý¶ªÊ§»ò¸ñʽ»ìÂÒ¡£ÎªÁËÈ·±£Êý¾ÝµÄÍêÕûÐԺͿɶÁÐÔ£¬ÎÒÃÇͨ³£Ê¹Óà `ON.stringify` ºÍ `ON.parse` ½øÐÐÐòÁл¯ºÍ·´ÐòÁл¯²Ù×÷¡£

Web Storage ²¢·ÇûÓÐÏÞÖÆ¡£ËüʹÓÃÁËͬԴ²ßÂÔ£¬Òâζ×Å´æ´¢µÄÊý¾ÝÖ»ÄÜÔÚͬһÀ´Ô´µÄÍøÕ¾ÉÏʹÓá£Web Storage ÎÞ·¨ÔÚ web worker »ò service worker ÖзÃÎÊ£¬Ò²ÎÞ·¨ÔÚÉèÖÃΪÒþ˽ģʽµÄä¯ÀÀÆ÷ÖжÁÈ¡¡£Í¬²½ÐÔÖÊÒ²¿ÉÄܶԸ´ÔÓÓ¦ÓõÄÏìӦʱ¼äÔì³ÉÓ°Ïì¡£¶ÔÓÚ´óÐÍ»ò¸´ÔÓÓ¦Óã¬ÐèÒª¿¼ÂÇÕâЩÒòËØÀ´ÓÅ»¯ÐÔÄÜ¡£

½ÓÏÂÀ´£¬ÈÃÎÒÃÇ¿´Ò»¸öʹÓà localStorage µÄ¼òµ¥Ê¾Àý£¬¸ÃʾÀýչʾÁËÈçºÎʹÓà localStorage À´´æ´¢Óû§Æ«ºÃ£¬ÀýÈçºÚ°µÄ£Ê½¡£ÔÚÕâ¸öÀý×ÓÖУ¬Ò³ÃæÉÏÓÐÒ»¸ö¸´Ñ¡¿ò£¬µ±Óû§µã»÷ʱ£¬Ò³Ãæ»áÔÚÃ÷ÁÁģʽºÍºÚ°µÄ£Ê½Ö®¼äÇл»£¬²¢½«Õâ¸öÅäÖô洢ÔÚ localStorage ÖС£µ±ÏÂÒ»´ÎÔÙ·ÃÎÊÒ³ÃæÊ±£¬½«´Ó localStorage ÖлñÈ¡Ö÷ÌâÉèÖò¢×Ô¶¯Ó¦Óá£Õâ¸ö¹¦ÄܵÄʵÏÖÉæ¼°µ½ JavaScript¡¢HTML ºÍ CSS µÄÅäºÏʹÓá£Ê¾Àý´úÂëÈçÏ£º

ÎÒÃÇÒ²ÒªÁ˽â Cookie µÄÏà¹ØÖªÊ¶¡£Cookie Ö÷ÒªÓÃÓÚÉí·ÝÑéÖ¤ºÍÓû§Êý¾Ý³Ö¾ÃÐÔ¡£Óë Web Storage Ïà±È£¬Cookie µÄÓ¦Óó¡¾°ºÍÌØÐÔÓÐËù²»Í¬¡£Cookie ͨ³£ÓÃÓÚÔÚÓû§ä¯ÀÀ²»Í¬Ò³ÃæÊ±¸ú×ÙÓû§×´Ì¬»ò±£´æÓû§Æ«ºÃÉèÖõȡ£ÓÉÓÚ Cookie µÄ´óСÏÞÖÆºÍ´«Ê俪Ïú½Ï´ó£¬Òò´Ë²»Êʺϴ洢´óÁ¿Êý¾Ý¡£Cookie »¹¿ÉÒÔͨ¹ý·þÎñÆ÷½øÐйÜÀíºÍ·ÃÎÊ£¬ÕâΪ¿çÕ¾¸ú×ÙÓû§ÐÐΪÌṩÁ˱ãÀû¡£Òò´ËÔÚʵ¼ÊÓ¦ÓÃÖÐÐèÒª¸ù¾ÝÐèÇóÑ¡ÔñºÏÊʵļ¼ÊõÀ´´æ´¢Êý¾Ý¡£

Web Storage ºÍ Cookie ¶¼ÊÇǰ¶Ë¿ª·¢Öг£ÓõÄÊý¾Ý´æ´¢¼¼Êõ¸÷ÓÐÆäÌØµãºÍÊÊÓó¡¾°¿ª·¢ÕßÓ¦¸ù¾Ýʵ¼ÊÐèÇóÑ¡ÔñºÏÊʵļ¼ÊõÀ´ÊµÏÖÊý¾Ý´æ´¢ºÍ·ÃÎÊ¿ØÖƵȹ¦ÄÜ¡£CookiesÊÇÓë·þÎñÆ÷½»»¥µÄÖØÒª»úÖÆ£¬ËüÃÇÔÚÿ´ÎÇëÇóʱһͬ·¢ËÍ£¬²¢ÔÚÏìӦʱ·µ»Øµ½¿Í»§¶Ë¡£ÕâЩÊý¾ÝµÄ½»»»Ê¹µÃ·þÎñÆ÷Äܹ»ÎªÓû§Ìṩ¸öÐÔ»¯µÄÄÚÈÝÌåÑ顣ʵ¼ÊÉÏ£¬cookie²¢²»ÊÇÔÚ¿Í»§¶Ë½øÐд洢µÄ·½Ê½£¬ÒòΪ·þÎñÆ÷ºÍä¯ÀÀÆ÷¶¼ÓÐÄÜÁ¦ÐÞ¸ÄÕâЩÊý¾Ý¡£ÖµµÃÒ»ÌáµÄÊÇ£¬cookieÊÇΨһÄܹ»ÔÚÒ»¶Îʱ¼äºó×Ô¶¯¹ýÆÚµÄÊý¾Ý´æ´¢·½Ê½¡£

ÔÚÿ¸öHTTPÇëÇóºÍÏìÓ¦ÖУ¬¶¼»áÉæ¼°cookieÊý¾ÝµÄ´«Êä¡£Èç¹û´æ´¢¹ý¶àµÄÊý¾Ý£¬»áʹHTTPÇëÇó±äµÃÈß³¤£¬´Ó¶øµ¼ÖÂÓ¦ÓÃÏìÓ¦±äÂý¡£ÎªÁËÓÐЧ¹ÜÀíÕâЩcookie£¬ä¯ÀÀÆ÷ʵʩÁËһЩÏÞÖÆ£ºÀýÈ磬µ¥¸öcookieµÄ´óС²»µÃ³¬¹ý4kb£¬Ìض¨ÓòÃûÏÂÔÊÐíµÄcookieÊýÁ¿Í¨³£Îª20¸ö£¬²¢ÇÒËüÃÇÖ»Äܰüº¬×Ö·û´®¸ñʽµÄÐÅÏ¢¡£ÖµµÃ×¢ÒâµÄÊÇ£¬cookieµÄ²Ù×÷ÊÇͬ²½µÄ£¬ÎÞ·¨Í¨¹ýweb workers·ÃÎÊ£¬µ«¿ÉÒÔͨ¹ýÈ«¾Öwindow¶ÔÏó½øÐзÃÎÊ¡£

CookieµÄÖ÷ÒªÓÃ;°üÀ¨»á»°¹ÜÀí¡¢¸öÐÔ»¯ºÍ¿çÍøÕ¾Óû§ÐÐΪ¸ú×Ù¡£ÎÒÃÇ¿ÉÒÔÔÚ·þÎñ¶ËºÍ¿Í»§¶Ë½øÐÐcookieµÄÉèÖúͷÃÎÊ¡£cookie»¹¾ßÓÐһϵÁÐÊôÐÔ£¬ÕâЩÊôÐÔ¾ö¶¨ÁËÔںδ¦ÒÔ¼°ÈçºÎ·ÃÎʺÍÐÞ¸ÄËüÃÇ¡£

¼òµ¥À´Ëµ£¬cookie·ÖΪÁ½ÖÖÀàÐÍ£º

1. »á»°cookie£ºÕâÀàcookieûÓÐÖ¸¶¨Expires»òMax-AgeµÈÊôÐÔ£¬Òò´ËÔڹرÕä¯ÀÀÆ÷ʱ»á±»É¾³ý¡£

2. ³Ö¾ÃÐÔcookie£ºÕâÀàcookieÖ¸¶¨ÁËExpires»òMax-AgeÊôÐÔ£¬ËùÒÔÔڹرÕä¯ÀÀÆ÷ʱ²»»á¹ýÆÚ£¬µ«ÔÚÌØ¶¨µÄÈÕÆÚ£¨Expires£©»òʱ¼ä³¤¶È£¨Max-Age£©ºó»á×Ô¶¯¹ýÆÚ¡£

½ÓÏÂÀ´£¬ÎÒÃÇÀ´¿´¿´ÈçºÎÔÚ¿Í»§¶ËºÍ·þÎñÆ÷ÎʺͲÙ×÷cookie¡£

ÔÚ¿Í»§¶Ë£¨ä¯ÀÀÆ÷£©ÉÏ£¬JavaScript¿ÉÒÔͨ¹ýdocument.cookie¶ÁÈ¡ËùÓпɷÃÎʵÄcookie¡£ÕâÊÇÒ»¸ö°üº¬ÒԷֺŷָôµÄcookieÁбíµÄ×Ö·û´®£¬²ÉÓÃkey=valueµÄ¸ñʽ¡£Í¬Ñù£¬ÎÒÃÇÒ²¿ÉÒÔʹÓÃdocument.cookieÀ´ÉèÖÃcookieµÄÖµ¡£Èç¹ûÐèҪƵ·±µØ´¦Àícookie£¬Ê¹ÓÃÈçjs-cookieÕâÑùµÄ¿â¿ÉÒÔ¼ò»¯²Ù×÷£¬²¢Ìṩ¸ü¸É¾»µÄAPIÒÔ¼°TypeScriptÖ§³Ö£¬´Ó¶ø±ÜÃâÊôÐÔÆ´Ð´´íÎó¡£

ÔÚ·þÎñÆ÷¶Ë£¨ÒÔNode.jsΪÀý£©£¬ÎÒÃÇ¿ÉÒÔͨ¹ýHTTPÇëÇóµÄÇëÇóÍ·ºÍÏìӦͷÀ´·ÃÎʺÍÐÞ¸Äcookie¡£Ã¿µ±ä¯ÀÀÆ÷Ïò·þÎñÆ÷·¢ËÍHTTPÇëÇóʱ£¬Ëü¶¼»áÔÚcookieÍ·Öи½¼***ùÓÐÏà¹ØµÄcookie¡£ÔÚNode.jsÖУ¬ÎÒÃÇ¿ÉÒÔ´ÓÇëÇó¶ÔÏóÖжÁÈ¡ÕâЩcookie¡£ÉèÖÃcookieÔò¿ÉÒÔÔÚÏìӦͷÖÐÌí¼ÓSet-CookieÍ·¡£

ͨ³££¬ÎÒÃDz»»áÖ±½Ó±àдNode.js´úÂ룬¶øÊÇÓëExpressÕâÑùµÄNode.js¿ò¼ÜÒ»ÆðʹÓá£Ê¹ÓÃExpress¿ÉÒÔ¸ü·½±ãµØ·ÃÎʺÍÐÞ¸Äcookie¡£ÎÞÂÛÊǿͻ§¶Ë»¹ÊÇ·þÎñÆ÷¶Ë£¬¶¼ÓÐһϵÁз½·¨ºÍ¿âÀ´²Ù×÷cookie£¬ÒÔÂú×㲻ͬµÄÐèÇóºÍÓ¦Óó¡¾°¡£ÉñÃØµÄCookieÊÀ½ç£ºÇáËɲÙ×÷ÓëÉîÈëÁ˽âÆäÊôÐÔ

ÔÚÏÖ´úweb¿ª·¢ÖУ¬Cookie°çÑÝ×ÅÖÁ¹ØÖØÒªµÄ½ÇÉ«¡£Ö»ÐèÌí¼ÓÒ»¸öÏñcookie-parserÕâÑùµÄÖмä¼þ£¬ÎÒÃǾͿÉÒÔÇáËɵØÔÚExpressÓ¦ÓÃÖд¦Àícookie¡£Í¨¹ýreq.cookies£¬ÎÒÃÇ¿ÉÒÔ»ñÈ¡ËùÓеÄcookie£¬²¢ÒÔJavaScript¶ÔÏóµÄÐÎʽ½øÐÐʹÓá£ÎÒÃÇ»¹¿ÉÒÔÀûÓÃExpressÄÚÖõÄres.cookie()·½·¨À´ÉèÖÃcookie¡£

ÈÃÎÒÃÇ¿´¿´ÈçºÎÔÚExpressÓ¦ÓÃÖÐʹÓÃcookie-parserÖмä¼þ£º

```javascript

const express = require('express');

const cookieParser = require('cookie-parser');

const app = express();

app.use(cookieParser());

app.get('/', function (req, res) {

console.log('Cookies:', req.cookies);

// Cookies: { cookie1: 'value1', cookie2: 'value2' }

res.cookie('name', 'tobi', { domain: 'exle', secure: true });

});

app.listen(8080);

```

½ÓÏÂÀ´£¬ÎÒÃÇÉîÈëÁ˽âcookieµÄ¸÷ÖÖÊôÐÔ£º

1. Domain£º´ËÊôÐÔ¸æËßä¯ÀÀÆ÷ÄÄЩÖ÷»ú¿ÉÒÔ·ÃÎÊcookie¡£Ä¬ÈÏÇé¿öÏ£¬cookieÖ»Äܱ»ÉèÖÃËüµÄͬһÖ÷»ú·ÃÎÊ¡£µ«ÓÐʱºò£¬ÎÒÃÇÏ£ÍûcookieÄÜÔÚ×ÓÓòÉÏÒ²±»Ê¹Óá£ÀýÈ磬Èç¹ûµ±Ç°µÄÓòÊÇabc£¬ÎÒÃÇ¿ÉÒÔÉèÖÃDomain=xyz£¬Ê¹cookieÔÚdefºÍxyzµÈ×ÓÓòÉ϶¼¿ÉʹÓᣵ«Õâ²¢²»Òâζ×Å¿ÉÒÔΪÈÎÒâÓòÉèÖÃcookie£¬ÒòΪÕâ´æÔÚ¾Þ´óµÄ°²È«·çÏÕ¡£

2. Path£º´ËÊôÐÔÖ¸¶¨ÁËÇëÇóURLÖбØÐë´æÔڵķ¾¶£¬²ÅÄÜ·ÃÎʸÃcookie¡£ÕâÌṩÁËÒ»ÖÖ³ýÓòÏÞÖÆÖ®ÍâµÄ¶îÍâÏÞÖÆ·½Ê½¡£ÀýÈ磬·¾¶ÊôÐÔΪPath=/storeµÄcookieÖ»ÄÜÔÚ/store¼°Æä×Ó·¾¶£¨Èç/store/cart¡¢/store/gadgetsµÈ£©Ï±»·ÃÎÊ¡£

3. Expires/Max-Age£ºÕâЩÊôÐÔÓÃÓÚÉèÖÃcookieµÄ¹ýÆÚʱ¼ä¡£Èç¹û²»ÉèÖã¬cookieĬÈÏÔÚä¯ÀÀÆ÷¹Ø±ÕºóʧЧ£¨¼´Session cookie£©¡£Í¨¹ýÉèÖÃÒ»¸ö¹ýÆÚÈÕÆÚ£¬ÎÒÃÇ¿ÉÒÔʹcookieÔÚÌØ¶¨µÄʱ¼äºóʧЧ£¬»òÕßͨ¹ý½«Æä¹ýÆÚÈÕÆÚÉèÖÃΪ¹ýÈ¥À´É¾³ýcookie¡£

4. Secure£º´ËÊôÐÔÈ·±£cookieÖ»ÄÜͨ¹ý°²È«µÄHTTPSЭÒé·¢Ë͵½·þÎñÆ÷£¬¶ø²»»áͨ¹ýHTTPЭÒé¡£ÕâÓÐÖúÓÚ·ÀÖ¹ÖмäÈ˹¥»÷¡£³ý·ÇÍøÕ¾Ê¹Óò»°²È«µÄHTTPÁ¬½Ó£¬·ñÔòӦʼÖÕ½«´ËÊôÐÔÓÃÓÚËùÓÐcookie¡£

5. HTTPOnly£º´ËÊôÐÔʹcookieÖ»ÄÜͨ¹ý·þÎñ¶Ë·ÃÎÊ¡£ÕâÒâζ×ÅËüÃÇÎÞ·¨Í¨¹ý¿Í»§¶ËJavaScript·ÃÎÊ£¬Õâ¿ÉÒÔÔÚÒ»¶¨³Ì¶ÈÉϱ£»¤´øÓÐÃô¸ÐÐÅÏ¢µÄcookieÃâÊÜXSS¹¥»÷¡£Õâ²¢²»Òâζ×ÅÍêÈ«ÃâÊÜXSS¹¥»÷£¬ÒòΪ¹¥»÷ÕßÈÔ¿ÉÄÜÖ´ÐÐAPIÇëÇó»òÆäËû²Ù×÷¡£Òò´ËÔÚʹÓÃʱ»¹ÐèÒª½áºÏÆäËû°²È«´ëʩһÆðʹÓá£

ÏÖ´úWeb¿ª·¢ÖеÄCookieÓëIndexedDB¼¼Êõ

Ò»¡¢Cookie¹ÜÀí¿â

ÔÚÏÖ´úWeb¿ª·¢ÖУ¬´¦ÀíCookieÊÇÒ»Ïî¹Ø¼üÈÎÎñ¡£ÓжàÖÖ¿â¿ÉÒÔ¼ò»¯ÕâÒ»¹ý³Ì£¬°üÀ¨js-cookie¡¢React CookieºÍCookies£¨Node.js£©¡£

1. js-cookie

js-cookieÊÇÒ»¸öÇáÁ¿¼¶µÄ¡¢¹¦ÄÜÇ¿´óµÄJavaScript¿â£¬Ö§³ÖAMD¡¢CommonºÍESÄ£¿é£¬ÎÞÐèÒÀÀµ¹ØÏµ£¬¾­¹ý³¹µ×²âÊÔ£¬²¢¾ß±¸Í¨ÓÃä¯ÀÀÆ÷Ö§³Ö¡£°²×°·Ç³£¼òµ¥£¬Ö»Ðèͨ¹ýnpm°²×°¼´¿É¡£Ê¹ÓÃÒ²ºÜÖ±¹Û£¬¿ÉÒÔÇáËÉÉèÖᢶÁÈ¡ºÍɾ³ýCookie¡£

2. React Cookie

React CookieÊÇרÃÅΪReactÉè¼ÆµÄcookie¿â£¬¼Ì³ÐÁËUniversal Cookie¿âµÄ¹¦ÄÜ¡£ËüÌṩÁËÒ»×é×é¼þºÍHooks£¬Ê¹ReactÖеÄcookie´¦Àí±äµÃ·Ç³£¼òµ¥¡£ÎÞÂÛÊÇʹÓÃReact 16.8+°æ±¾»¹ÊǸüÔç°æ±¾£¬¶¼¿ÉÒÔͨ¹ý¸Ã¿âÇáËÉ´¦Àícookie¡£

3. Cookies£¨Node.js£©

CookiesÊÇHTTP cookieÅäÖõÄÁ÷ÐÐNodeÄ£¿éÖ®Ò»¡£Ëü¿ÉÒÔÇáËɵØÓëÄÚÖõÄNode HTTP¿â¼¯³É£¬»ò×÷ΪExpressÖмä¼þʹÓá£ËüÌṩÁËÇ¿´óµÄ¹¦ÄÜ£¬ÈçʹÓÃKeygrip¶Ôcookie½øÐÐÇ©ÃûÒÔ·ÀÖ¹´Û¸Ä¡¢Ö§³ÖÑÓ³ÙcookieÑéÖ¤µÈ¡£

¶þ¡¢IndexedDB¼¼Êõ

³ýÁËCookie¹ÜÀíÖ®Í⣬IndexedDBÊÇÏÖ´úWeb¿ª·¢ÖÐÁíÒ»ÖÖÖØÒª¼¼Êõ¡£ËüÊÇÒ»¸öÔÚ¿Í»§¶Ë´æ´¢´óÁ¿½á¹¹»¯Êý¾ÝµÄÊý¾Ý¿âϵͳ¡£

1. ¸ÅÊö

IndexedDBÌṩÁËÒ»¸öÀàËÆNoSQLµÄkey/valueÊý¾Ý¿â£¬¿ÉÒÔ´æ´¢´óÁ¿½á¹¹»¯Êý¾Ý¡¢ÎļþºÍblob¡£Ã¿¸öÓòÖÁÉÙÓÐ1GBµÄ¿ÉÓÿռ䣬²¢ÇÒ×î¶à¿ÉÒԴﵽʣÓà´ÅÅ̿ռäµÄ60%¡£ËüÓÚ2011ÄêʵÏÖ£¬²¢ÓÚ2015Äê1Ô³ÉΪW3C±ê×¼£¬¾ßÓÐÁ¼ºÃµÄä¯ÀÀÆ÷Ö§³Ö¡£

2. ¹Ø¼üÊõÓï½âÊÍ

ÔÚÉîÈëÁ˽âIndexedDB֮ǰ£¬ÎÒÃÇÐèÒªÁ˽âһЩÏà¹ØÊõÓï¡£Êý¾Ý¿âÊÇÖ¸Ò»¸öÓò¿ÉÒÔ´´½¨ÈÎÒâÊýÁ¿µÄIndexedDBÊý¾Ý¿â£¬Ö»ÓÐͬһÓòÄÚµÄÒ³Ãæ²ÅÄÜ·ÃÎÊÊý¾Ý¿â¡£Object storeÊÇÏà¹ØÊý¾ÝÏîµÄkey/value´æ´¢£¬ÀàËÆÓÚMongoDBÖеļ¯ºÏ»ò¹ØÏµÊý¾Ý¿âÖÐµÄ±í¡£KeyÊÇÓÃÓÚÒýÓÃobject storeÖÐÿÌõ¼Ç¼£¨Öµ£©µÄΨһÃû³Æ¡£IndexÊÇÔÚobject storeÖÐ×éÖ¯Êý¾ÝµÄÁíÒ»ÖÖ·½Ê½£¬ËÑË÷²éѯֻÄܼì²ékey»òindex¡£SchemaÊÇÖ¸object store¡¢keyºÍindexµÄ¶¨Ò壬¶øversionÔò·ÖÅ䏸schemaµÄ°æ±¾ºÅ¡£

ͨ¹ýʹÓÃIndexedDB£¬¿ª·¢ÈËÔ±¿ÉÒÔÇáËɵش洢ºÍ¼ìË÷´óÁ¿Êý¾Ý£¬Ìá¸ßWebÓ¦ÓóÌÐòµÄÐÔÄܺÍÓû§ÌåÑé¡£½áºÏÆäËû

Copyright@2015-2025 °×ñ°·çÍø°æ°åËùÓÐ