老师帮我加一下注释。希望老师通俗的解释。 嘿嘿 把理解不了
<!DOCTYPE html> <html manifest="" style="font-size:16px"> <head> <title>练习</title> <meta charset="UTF-8"> </head> <body> <!-- JS --> <script type="text/javascript"> // 严格模式 'use strict'; // 自执行匿名函数 ( function () { // 保存 localStorage 对象 var ls = window.localStorage; // 储存报错返回函数 function oops(){ return console.warn("储存报错了。") } // cacheStorage 获取数据 函数 function getItem(key){ // 获取 localStorage 中的数据 var data = ls.getItem(key); // data 数据 转换为对象 data = JSON.parse(data) || {}; // time 如何来的 老师 if( data.time === 0) { //返回 数据中value的值 return data.value; // 判断 是否过期 // 老师详细讲解一下原理 } else if( Date.now() > data.time) { //时间超出删除当前值 ls.removeItem(key); } else { // 为空返回"" 否则返回 data.value return typeof data.value !== "undefined" ? data.value : ""; } } function setItem(key,value,time){ if( typeof key === "undefined") return var data = { time : time ? Date.now() + time : 0, value : value, } data = JSON.stringify(data); try { ls.setItem(key,data); } catch { ls.clear(); ls.setItem( key, data); } } function removeItem(key){ ls.removeItem(key); } function clear(){ ls.clear(); } window.cacheStorage = { getItem : ls ? getItem : oops, setItem : ls ? setItem : oops, removeItem : ls ? removeItem : oops, clear : ls ? clear : clear, } })() </script> </body> </html>
0
收起
正在回答
4回答
这段代码的原理是,将上面定义的方法添加到window的一个属性中,调用的时候通过属性调用即可。
每一个三元运算的意思是:浏览器是否支持localstorage,如果支持,就调用自己定义的方法;如果不支持,就调用oops方法提示警告。
组件化思想开发电商网页 18版
- 参与学习 人
- 提交作业 467 份
- 解答问题 4826 个
本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星