您的位置:首页 > Web前端 > HTML5

html5 web数据存储

2016-03-04 10:54 2041 查看

客户端数据存储

    html5前,客户端数据存储主要依靠cookies,但是cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。为此,html5中提供了两种新的方法:

    1.localStorage: 没有时间限制的数据存储

    2.sessionStorage: 针对一个session的数据存储

    在 html5 中,数据不是由每个服务器请求传递的,而是只有在请求时使用数据。它使在不影响网站性能的情况下存储大量数据成为可能。对于不同的网站,数据存储于不同的区域,并且一个网站只能访问其自身的数据。数据以 键/值 对存在, web网页的数据只允许该网页访问使用。html5 使用 JavaScript 来存储和访问数据。

客户端浏览器支持

    1.支持:IE8+,firefox,chrome,opera,safari都支持web存储

    2.不支持:IE7及更早版本都不支持web存储

    由于浏览器支持程度不同,因此在使用前要考虑浏览器兼容问题

if(typeof(Storage)!=="undefined"){
      // Yes! localStorage and sessionStorage support!
      // Some code.....
 }else{
      // Sorry! No web storage support..
 }

localStorage对象

数据可以长时间存储

<script type="text/javascript">
    localStorage.lastname="Smith";
    document.write("Last name: " + localStorage.lastname);
</script>

    我们知道,web存储是以键值对的形式保存的。在上面的例子中,key值为lastname,value值为Smith。通过key值,可以直接找到对应的value值

sessionStorage对象

    sessionStorage是针对一个session进行数据存储的。我们知道,session有自己的生命周期,它是在服务器中创建的,而当我们关闭浏览器的时候session也会在服务器上被删除。它的用法与上面的localStorage大同小异

<script type="text/javascript">
    sessionStorage.lastname="Smith";
    document.write("Last name: " + sessionStorage.lastname);
</script>

实例

    1.localStorage实例

<!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>刷新页面会看到计数器在增长。</p>
<p>请关闭浏览器窗口,然后再试一次,计数器已经重置了。</p>
</body>
</html>

    2.sessionStorage实例

<!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>刷新页面会看到计数器在增长。</p>
<p>请关闭浏览器窗口,然后再试一次,计数器已经重置了。</p>
</body>
</html>


(adsbygoogle = window.adsbygoogle || []).push({});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  前端 html5