热门IT资讯网

html5 localStorage 实用

发表于:2024-11-24 作者:热门IT资讯网编辑
编辑最后更新 2024年11月24日,html5的很多方法现在支持情况都越来越好了,特别是在移动端。最近做移动端小游戏用到localStorage,特将使用方法和遇到的问题加以说明。简介localStorage是html5提供的供开发者本

html5的很多方法现在支持情况都越来越好了,特别是在移动端。最近做移动端小游戏用到localStorage,特将使用方法和遇到的问题加以说明。

简介

localStorage是html5提供的供开发者本地存储数据的一种特别方便的方法。开发者可以使用此方法讲部分数据保存到本地,以便下次验证,数据传输等。大部分pc浏览器存储的数据量大小目前主流说法为5M以内,移动端浏览器没有做这方面测试,所以没有发言权。

兼容性

ie 8+

firefox 3.0+

opera 10.5+

chrome 4.0+

android 2.0+

ios据说也是2.0+,没见过ios 2.0的机器,所以可以认为ios无下限

兼容性总体来说是没有问题的,目前大部分pc端项目ie8考虑就可以了。但是如果你的项目面对的用户群为广大的网吧杀马特少年,最好还是别用此属性。当然,移动端可以放荡的使用,没有问题。

使用方法

localstorage提供了两种使用方法

1.

//set valuelocalStorage.name="rogue";localStorage.age="secret";//get value[xss_clean](localStorage.name); // get "rogue"alert(localStorage.age);  //get "secret"

此方法简单易用,比较流行常用。手机测试没出现什么问题。


2.

//set value localStorage.setItem("name","rogue"); localStorage.setItem("age","secret");//get value[xss_clean](localStorage.getItem("name")); //get "rogue" stringalert(localStorage.getItem("age")); //get "secret"

此方法由于比方法1要多书写N个字母,so使用不是很广泛。


方法1与方法2可单用,可混用,测试大部分手机,没发现问题。

注意

不论用何种方法存储数据,官方给出的说法是数据存储没有任何限制,在第二天、第二周或下一年之后,数据依然可用。但是移动端经测试数据仍然会存在丢失的情况,经过N久排查最终找到原因:

测试发现,当android或ios设备在不同网络环境下连续切换两次,localStorage存储的数据就会丢失。举个栗子,你的iphone在3g网络下玩过网页版2048然后暂时存储了部分数据(最高分,游戏当前状态等),切换到wifi环境下重新打开此网页数据还在,再次切换到3g网络所有的localStorage数值对全部神奇的disappear了。所以说官方很多时候是靠不住的,真机测试才是王道。

测试机包括:android4.0以上机器十几台、ios5.0设备一台、ios7.1设备一台


(本文仅代表个人观点,如有错误,请评论指正,谢谢)



0