html5之本地存储localStorage示例

html5之本地存储localStorage示例

<!-- 
注意: 
index.html 文件中的IP指的是服务器的访问地址,请根据具体需求走。本案例只做参考。
返回的json格式,大家可通过本地.json文件模拟,具体格式如下:
{
    "cindex": 0,
    "max": 0,
    "min": 0,
    "p_id": 0,
    "paper_id": 0,
    "score": "",
    "scoreRule": "",
    "score_type": "",
    "title": "哈哈哈哈哈",
    "totalNum": 0,
    "type": 1,
    "unmber": ""
}
-->        

 

index.html 文件

<!doctype html> <html lang="en"> <head> <title> html5本地缓存示例 </title> <meta charset="utf-8"> <meta name="description" content="html5本地缓存示例"> </head> <body> <div> <input type="text" id="jsonName"/> <input type="button" value="按存储名查询" onclick="findStorage()"/> <input type="button" value="按存储名删除" onclick="deleteStorage()"/> <div id="storageInfo"> </div> </div> <p> 1、针对客户端而言,localStorage 本地永久存储;sessionStorage 临时存储;<br/> 2、localStorage 与 sessionStorage 存储大小5MB;注意不要存储敏感信息<br/> 3、以ajax取得数据为例,将返回的json存储至localStorage中 </p> <script type="text/javascript" src="js/lib/jquery-1.9.1.min.js"></script> <script> /*定义对象*/ var questionIPort = "http://IP/yitaifront/normalcase/test?id="; function getElObj(elId){ //取对象 return document.getElementById(elId); } function isEmptyObj(data){ //判空 if(data == null || data == ""){ return true; }else{ return false; } } function saveStorage(saveName,data){ //存数据 if(isEmptyObj(data)){ try{ console.log("数据保存失败"); window.localStorage.setItem(saveName,""); }catch(oException){ if(oException.name == 'QuotaExceededError'){ removeAllStorage(saveName, ""); } } }else{ var str = JSON.stringify(data); try{ window.localStorage.setItem(saveName,str); console.log("整个数据已保存,取值name为"+saveName); }catch(oException){ if(oException.name == 'QuotaExceededError'){ removeAllStorage(saveName, str); } } } } function removeAllStorage(saveName, str){ //清空所有  console.log('超出本地存储限定范围!'); //如果历史信息不重要了,可清空后再设置  localStorage.clear(); window.localStorage.setItem(saveName,str); } function removeStorageByCount(count){ var countInt = count-0; console.log(window.localStorage); for(var i = 1; i <= countInt; i++){ var storageKey = window.localStorage.key(i); console.log(""+i+"个对象的key值为"+storageKey); window.localStorage.removeItem(storageKey); } console.log("超出本地存储限定范围!共删除"+i+"个对象"); } function findStorage(){ //查数据 var targetObj = getElObj("jsonName").value; if(isEmptyObj(targetObj)){ getElObj("storageInfo").innerHTML = ""; return ; }else{ var str = window.localStorage.getItem(targetObj); var data = JSON.parse(str); if(data != null && data != ""){ getElObj("storageInfo").innerHTML = data.title; console.log(data.title); }else{ getElObj("storageInfo").innerHTML = ""; } } console.log("查找......"); } function deleteStorage(){ //删数据 var targetObj = getElObj("jsonName").value; if(isEmptyObj(targetObj)){ return ; }else{ window.localStorage.removeItem(targetObj); getElObj("storageInfo").innerHTML = "删除成功"; } console.log("删除......"); } function findQuestInfo(questionIPort, saveId){ //接口调用  $.ajax({ url: questionIPort+saveId, dataType: "json", type: "get", beforeSend: function() { //请求前  }, success: function(response) { //请求成功 if(response.code == 200){ saveStorage("questStorage"+saveId,response.data); }else{ saveStorage("questStorage"+saveId,""); } }, complete: function() { //请求完成  }, error: function() { //请求出错  saveStorage("questStorage"+saveId,""); } }); } //查询保存数据   findQuestInfo(questionIPort, "118"); //单选题  findQuestInfo(questionIPort, "181"); //多选题  findQuestInfo(questionIPort, "135"); //填空题  findQuestInfo(questionIPort, "182"); //主观题  findQuestInfo(questionIPort, "166"); //数字记忆  findQuestInfo(questionIPort, "167"); //词语记忆 /*setTimeout(function(){ removeStorageByCount(2); },3000);*/ </script> </body> </html>

 

转载于:https://www.cnblogs.com/mbsh/p/5163284.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/109155.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • MySQL——SQL练习题

    MySQL——SQL练习题

  • 无人驾驶汽车系统入门(二)——高级运动模型和扩展卡尔曼滤波

    无人驾驶汽车系统入门(二)——高级运动模型和扩展卡尔曼滤波前言:上一篇文章的最后我们提到卡尔曼滤波存在着一个非常大的局限性——它仅能对线性的处理模型和测量模型进行精确的估计,在非线性的场景中并不能达到最优的估计效果。所以之前为了保证我们的处理模型是线性的,我们上一节中使用了恒定速度模型,然后将估计目标的加减速用处理噪声来表示,这一模型用来估算行人的状态其实已经足够了,但是在现实的驾驶环境中,我们不仅要估计行人,我们除了估计行人状态以外,我们还需要估计其他

  • spring-boot-devtools的作用_maven compiler plugin

    spring-boot-devtools的作用_maven compiler plugin文章目录添加SpringBootdevtool依赖默认属性自动重启LiveReload全局配置SpringBootdevtool的使用SpringBoot为我们提供了一个便捷的开发SpringBoot应用程序的环境,同时为了方便我们的开发SpringBoot应用程序,SpringBoot推出了SpringBootdevtool的工具来方便我们更加快速的开发和测试Spri…

  • 树莓派4B安装tensorflow2.0[通俗易懂]

    树莓派4B安装tensorflow2.0[通俗易懂]这个GitHub上可以下载到tensorflow2.x:https://github.com/lhelontra/tensorflow-on-arm/releases我就拿我下载的举例子吧:我下载的是这个版本的:tensorflow-2.0.0-cp37-none-linux_armv7l.whl1、把下载的这个tensorflow-2.0.0-cp37-none-linux_armv7l.whl文件放进树莓派里边,cd到你拖进的那一目录下(我是拖到Desktop,所以是:cdDesktop),命令行

  • acwing1117. 单词接龙(深搜dfs)[通俗易懂]

    acwing1117. 单词接龙(深搜dfs)[通俗易懂]单词接龙是一个与我们经常玩的成语接龙相类似的游戏。现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”,每个单词最多被使用两次。在两个单词相连时,其重合部分合为一部分,例如 beast 和 astonish ,如果接成一条龙则变为 beastonish。我们可以任意选择重合部分的长度,但其长度必须大于等于1,且严格小于两个串的长度,例如 at 和 atide 间不能相连。输入格式输入的第一行为一个单独的整数 n 表示单词数,以下 n 行每行有一个单词(只含有大写或小写字母

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号