资讯专栏INFORMATION COLUMN

localStorage应用(写的时间缓存在本地浏览器)

APICloud / 1424人阅读

摘要:连续签到天及以上敬请期待。。。。其他说明每签到获得条短信的赠送,一天只能领取一次其他活动敬请期待。。。。

最近用了下localStorage,于是想记录加深下映象;

有关更详细的介绍,可以去看https://www.cnblogs.com/st-le...;

我这引用了这个博客的优势介绍:大家可以了解下

一、什么是localStorage、sessionStorage

在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k),localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同。

二、localStorage的优势与局限

localStorage的优势

1、localStorage拓展了cookie的4K限制

2、localStorage会可以将第一次请求的数据直接存储到本地,这个相当于一个5M大小的针对于前端页面的数据库,相比于cookie可以节约带宽,但是这个却是只有在高版本的浏览器中才支持的

localStorage的局限

1、浏览器的大小不统一,并且在IE8以上的IE版本才支持localStorage这个属性

2、目前所有的浏览器中都会把localStorage的值类型限定为string类型,这个在对我们日常比较常见的JSON对象类型需要一些转换

3、localStorage在浏览器的隐私模式下面是不可读取的

4、localStorage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡

5、localStorage不能被爬虫抓取到

localStorage与sessionStorage的唯一一点区别就是localStorage属于永久性存储,而sessionStorage属于当会话结束的时候,sessionStorage中的键值对会被清空

三:应用(自己项目的应用)

html

</>复制代码

  1. 今日未领短信,请立即签到!

  2. 签到规则

  3. 每签到获得10条短信的赠送。

  4. 连续签到敬请期待。。。。

  5. 连续签到16天及以上敬请期待。。。。

  6. 其他说明

  7. 每签到获得10条短信的赠送,一天只能领取一次

  8. 其他活动敬请期待。。。。


  9. 10
  10. 您领取了10条短信
    已经充入您的短信余额!

  css:

</>复制代码

  1. *{
  2. margin:0;
  3. padding:0;
  4. }
  5. body,html{
  6. background: #4d56a3;
  7. }
  8. .head {
  9. height: 56px;
  10. background-color: #4d56a3;
  11. line-height: 56px;
  12. font-size: 18px;
  13. color: #fff;
  14. }
  15. .qiandao-right{
  16. width: 90%;
  17. margin: 0 auto;
  18. background: url(../img/qiandao_con.png) no-repeat;
  19. background-size: 100%;
  20. padding: 0 20px;
  21. box-sizing: border-box;
  22. }
  23. .qiandao-top {
  24. padding-top: 70px;
  25. height: 13pc;
  26. }
  27. .just-qiandao {
  28. margin: 0 auto 20px;
  29. width: 212px;
  30. height: 67px;
  31. cursor: pointer;
  32. }
  33. .qiandao-sprits {
  34. background-image: url(../images/qiandao_sprits.png);
  35. background-repeat: no-repeat;
  36. }
  37. .qiandao-notic {
  38. color: #b25d06;
  39. text-align: center;
  40. font-size: 18px;
  41. }
  42. .qiandao-rule-list {
  43. margin-bottom: 35px;
  44. color: #8d8ebb;
  45. font-size: 1pc;
  46. line-height: 26px;
  47. }
  48. .qiandao-rule-list h4 {
  49. font-weight: bolder;
  50. font-size: 1pc;
  51. }
  52. .qiandao-rule-list h4,
  53. .qiandao-rule-list p{
  54. color: #8d8ebb;
  55. }
  56. .qiandao-notic {
  57. color: #b25d06;
  58. text-align: center;
  59. font-size: 18px;
  60. }
  61. .qiandao-sprits.active{
  62. background-position: 0 -68px;
  63. pointer-events: none;
  64. }
  65. .qiandao-layer {
  66. position: fixed;
  67. top: 0;
  68. bottom: 0;
  69. left: 0;
  70. z-index: 888;
  71. display: none;
  72. width: 100%;
  73. }
  74. .qiandao-active .qiandao-layer-con {
  75. margin: -232px 0 0 -211px;
  76. width: 422px;
  77. height: 434px;
  78. }
  79. .close-qiandao-layer {
  80. position: absolute;
  81. top: 13px;
  82. right: 13px;
  83. width: 1pc;
  84. height: 1pc;
  85. background-position: -228px -51px;
  86. }
  87. .qiandao-sprits {
  88. background-image: url(../images/qiandao_sprits.png);
  89. background-repeat: no-repeat;
  90. }
  91. .yiqiandao {
  92. margin: 36px 0 0 40px;
  93. color: #666;
  94. font-size: 14px;
  95. line-height: 38px;
  96. }
  97. .clear {
  98. clear: both;
  99. }
  100. .yiqiandao .yiqiandao-icon {
  101. float: left;
  102. margin: 0 25px;
  103. width: 178px;
  104. height: 38px;
  105. background-position: -217px 0;
  106. }
  107. .qiandao-sprits {
  108. background-image: url(../images/qiandao_sprits.png);
  109. background-repeat: no-repeat;
  110. }
  111. .yiqiandao {
  112. margin: 36px 0 0 40px;
  113. color: #666;
  114. font-size: 14px;
  115. line-height: 38px;
  116. }
  117. .qiandao-jiangli {
  118. position: relative;
  119. margin: 45px auto;
  120. width: 335px;
  121. height: 170px;
  122. background-position: 0 -146px;
  123. }
  124. .qiandao-sprits {
  125. background-image: url(../images/qiandao_sprits.png);
  126. background-repeat: no-repeat;
  127. }
  128. .qiandao-jiangli span {
  129. position: absolute;
  130. top: 58px;
  131. left: 50px;
  132. display: block;
  133. width: 178px;
  134. height: 106px;
  135. color: #ff7300;
  136. text-align: center;
  137. font-weight: bolder;
  138. font-size: 30px;
  139. line-height: 106px;
  140. }
  141. .qiandao-jiangli span em {
  142. padding-left: 5px;
  143. font-style: normal;
  144. font-size: 1pc;
  145. }
  146. .qiandao-layer-bg {
  147. width: 100%;
  148. height: 100%;
  149. background-color: #000;
  150. opacity: .55;
  151. filter: alpha(opacity=55);
  152. }
  153. .qiandao-active .qiandao-layer-con {
  154. margin: 100px auto;
  155. width: 90%;
  156. margin-left: 5%;
  157. height: 440px;
  158. z-index: 100;
  159. position: absolute;
  160. box-sizing: border-box;
  161. }
  162. .qiandao-layer-con {
  163. z-index: 999;
  164. padding-top: 30px;
  165. border: 3px #33b23f solid;
  166. border-radius: 5px;
  167. background-color: #fff;
  168. }
  169. .qiandao-layer-con p{
  170. text-align: center;
  171. color: #8c8c8c;
  172. }
  173. .headLeft:active {
  174. background-color: #363f8e;
  175. }

js

</>复制代码

  1. // 点击后效果
  2. function dianJi(){
  3. localStorage.dateMsg = dateMsg;
  4. qianDao.classList.add("active");
  5. pHtml.innerHTML = "今日已领10条短信,请明日继续签到!";
  6. suQian.style.display = "block";
  7. }
  8. //关闭窗口
  9. function closeCk() {
  10. suQian.style.display = "none";
  11. }
  12. var qianDao = document.getElementById("js-just-qiandao"),
  13. pHtml = document.getElementById("pHtml"),
  14. close = document.getElementById("close"),
  15. suQian = document.getElementById("suQian"),
  16. dateMsg = new Array;
  17. date = new Date(),
  18. dateYear = date.getFullYear(),
  19. dateMonth = date.getMonth(),
  20. dateDate = date.getDate();
  21. dateMsg = [dateYear, dateMonth, dateDate];
  22. qianDao.addEventListener("click", dianJi);
  23. close.addEventListener("click", closeCk);
  24. (function() {
  25. var date = new Date(),
  26. old = new Array,
  27. dateY = date.getFullYear(),
  28. dateM = date.getMonth(),
  29. dateD = date.getDate(),
  30. newMsg = new Array,
  31. newMsg = [dateY, dateM, dateD];
  32. old = localStorage.dateMsg.split(",");
  33. var oldY = old[0],
  34. oldM = old[1],
  35. oldD = old[2];
  36. if(oldY == dateY && oldM == dateM && oldD == dateD){
  37. qianDao.classList.add("active");
  38. pHtml.innerHTML = "今日已领10条短信,请明日继续签到!";
  39. }
  40. else {
  41. qianDao.classList.remove("active");
  42. pHtml.innerHTML = "今日未领短信,请立即签到!";
  43. localStorage.dateMsg = newMsg;
  44. }
  45. })(jQuery)

当然只是简单的应用,代码还没怎么整理,有不足之处,望指出。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/102126.html

相关文章

  • Cookie&Session、LocalStorage&SessionStorage

    摘要:那要是被删了呢那没办法了,只能重新登陆,意味着重新提交重新分配随机数。它是一个哈希,作用就是字面意思,本地存储,只不过这里的本地指的是浏览器。 标签可以保留回车和空格等你怎么写它就怎么展示的内容 cookie cookie可以看作是一种设置,允许浏览器在电脑本地硬盘的某一个隐蔽的地方开发一块存储空间,用来存放某些特定的内容。 如果在服务器端设置了允许使用cookie,那么,之后浏览器每...

    twohappy 评论0 收藏0
  • 前端工程师面试必备(持续更新中)

    摘要:最近的一次更新的变量有效,并且会作用于全部的引用的处理方式和相同,变量值输出时根据之前最近的一次定义计算,每次引用最近的定义有效嵌套三种预编译器的选择器嵌套在使用上来说没有任何区别,甚至连引用父级选择器的标记也相同。 面试汇总一:2018大厂高级前端面试题汇总 高级面试:【半月刊】前端高频面试题及答案汇总 css内容 响应式布局 当前主流的三种预编译器比较 CSS预处理器用一种专门的...

    jubincn 评论0 收藏0
  • 览器缓存原理以及本地存储

    摘要:私有缓存就是用户专享的,各级代理不能缓存的缓存。代表使用内存中的缓存,则代表使用的是硬盘中的缓存,浏览器读取缓存的顺序为。 作为一名前端工作人员,前端的缓存知识是必须掌握的,因为一个网站打开网页的速度直接关系到用户体验,用户粘度,而提高网页的打开速度有很多方面需要优化,其中比较重要的一点就是利用好缓存,缓存文件可以重复利用,还可以减少带宽,降低网络负荷。 1 缓存 缓存从宏观上分为私有...

    roundstones 评论0 收藏0
  • 览器缓存原理以及本地存储

    摘要:私有缓存就是用户专享的,各级代理不能缓存的缓存。代表使用内存中的缓存,则代表使用的是硬盘中的缓存,浏览器读取缓存的顺序为。 作为一名前端工作人员,前端的缓存知识是必须掌握的,因为一个网站打开网页的速度直接关系到用户体验,用户粘度,而提高网页的打开速度有很多方面需要优化,其中比较重要的一点就是利用好缓存,缓存文件可以重复利用,还可以减少带宽,降低网络负荷。 1 缓存 缓存从宏观上分为私有...

    Rindia 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<