下面小編就為大家?guī)?lái)一篇HTML5 Web 存儲(chǔ)詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,祝大家游戲愉快哦
在客戶端存儲(chǔ)數(shù)據(jù)
HTML5 提供了兩種在客戶端存儲(chǔ)數(shù)據(jù)的新方法:
? localStorage – 沒(méi)有時(shí)間限制的數(shù)據(jù)存儲(chǔ)
? sessionStorage – 針對(duì)一個(gè) session 的數(shù)據(jù)存儲(chǔ)
之前,這些都是由 cookie 完成的。但是 cookie 不適合大量數(shù)據(jù)的存儲(chǔ),因?yàn)樗鼈冇擅總€(gè)對(duì)服務(wù)器的請(qǐng)求來(lái)傳遞,這使得 cookie 速度很慢而且效率也不高。
在 HTML5 中,數(shù)據(jù)不是由每個(gè)服務(wù)器請(qǐng)求傳遞的,而是只有在請(qǐng)求時(shí)使用數(shù)據(jù)。它使在不影響網(wǎng)站性能的情況下存儲(chǔ)大量數(shù)據(jù)成為可能。
對(duì)于不同的網(wǎng)站,數(shù)據(jù)存儲(chǔ)于不同的區(qū)域,并且一個(gè)網(wǎng)站只能訪問(wèn)其自身的數(shù)據(jù)。
HTML5 使用 JavaScript 來(lái)存儲(chǔ)和訪問(wèn)數(shù)據(jù)。
localStorage 方法
localStorage 方法存儲(chǔ)的數(shù)據(jù)沒(méi)有時(shí)間限制。第二天、第二周或下一年之后,數(shù)據(jù)依然可用。
如何創(chuàng)建和訪問(wèn) localStorage:
XML/HTML Code復(fù)制內(nèi)容到剪貼板
-
<!DOCTYPE HTML> <html> <body> <script type="text/javascript"> localStorage.lastname="Smith"; document.write("Last name: " + localStorage.lastname); </script> </body> </html>
下面的例子對(duì)用戶訪問(wèn)頁(yè)面的次數(shù)進(jìn)行計(jì)數(shù):
XML/HTML Code復(fù)制內(nèi)容到剪貼板
-
<!DOCTYPE HTML> <html> <body> <script type="text/javascript"> if (localStorage.pagecount) { localStorage.pagecount=Number(localStorage.pagecount) +1; } else { localStorage.pagecount=1; } document.write("Visits: " + localStorage.pagecount + " time(s)."); </script> <p>刷新頁(yè)面會(huì)看到計(jì)數(shù)器在增長(zhǎng)。</p> <p>請(qǐng)關(guān)閉瀏覽器窗口,然后再試一次,計(jì)數(shù)器會(huì)繼續(xù)計(jì)數(shù)。</p> </body> </html>
sessionStorage 方法
sessionStorage 方法針對(duì)一個(gè) session 進(jìn)行數(shù)據(jù)存儲(chǔ)。當(dāng)用戶關(guān)閉瀏覽器窗口后,數(shù)據(jù)會(huì)被刪除。
如何創(chuàng)建并訪問(wèn)一個(gè) sessionStorage:
JavaScript Code復(fù)制內(nèi)容到剪貼板
-
<!DOCTYPE HTML> <html> <body> <script type="text/javascript"> sessionStorage.lastname="Smith"; document.write(sessionStorage.lastname); </script> </body> </html>
下面的例子對(duì)用戶在當(dāng)前 session 中訪問(wèn)頁(yè)面的次數(shù)進(jìn)行計(jì)數(shù):
XML/HTML Code復(fù)制內(nèi)容到剪貼板
-
<!DOCTYPE HTML> <html> <body> <script type="text/javascript"> if (sessionStorage.pagecount) { sessionStorage.pagecount=Number(sessionStorage.pagecount) +1; } else { sessionStorage.pagecount=1; } document.write("Visits " + sessionStorage.pagecount + " time(s) this session."); </script> <p>刷新頁(yè)面會(huì)看到計(jì)數(shù)器在增長(zhǎng)。</p> <p>請(qǐng)關(guān)閉瀏覽器窗口,然后再試一次,計(jì)數(shù)器已經(jīng)重置了。</p> </body> </html>