老师帮我加一下注释。希望老师通俗的解释。 嘿嘿 把理解不了
<!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 星