分享html5中localStorage的实例教程

ID:8127 / 打印

使用html5的storage来保存数据. 做了个小工具来用一下这个新特性。

需求说明: 有时发现有好的英语表达或者是陌生的单词,总是想记下来,但是过几天之后又不记得了,更别说运用了.

<!DOCTYPE html> <head> <meta charset="UTF-8"> <title>SO EASY!</title> <style type="text/css">     html,body {   background-color: #262;         color: #fff;         font-family: helvetica, arial, sans-serif;         margin: 0;         padding: 0;         font-size: 11pt;     }        </style> <script lang=&#39;text/javascript&#39;>     window.addEventListener("load", eventWindowLoaded, false);     var entries = [];     var curIndex = -1;     function eventWindowLoaded()     {         loadEntries(1);         showNext();         var dayselection = $("dayselection");         dayselection.addEventListener("change", daysSelectionChanged, false);        }  function daysSelectionChanged(e)     {         var target = e.target;         loadEntries(target.value);          clearTextarea();         curIndex = -1;         showNext();         log(&#39;总共&#39;+entries.length+&#39;个, 当前第&#39;+(curIndex+1)+&#39;个&#39;);     }      function loadEntries(days)     {         var now = new Date().getTime();         var arr = [];         for(var i=0; i<localStorage.length; i++)         {             var time = localStorage.key(i);             var daysBetween = (now - time)/24/60/60/1000;             // console.log(daysBetween);             if (daysBetween <= days)             {                 var value = JSON.parse(localStorage.getItem(time));                 var entry = {time: time, data: value};                 arr.push(entry);             }         }         entries = arr;     }      function saveEntry()     {         var data_en = $(&#39;en&#39;).value;         var data_zh = $(&#39;zh&#39;).value;         var data = {en: data_en, zh: data_zh};         var time = new Date().getTime();         if (data_en ==&#39;&#39; && data_zh == &#39;&#39;) // TODO: 正则         {             alert(&#39;必须输入中英文表达!&#39;);         }         else         {             localStorage.setItem(time, JSON.stringify(data));                            // Update UI             log(&#39;保存成功!&#39;);             // ReLoad entries             loadEntries($(&#39;dayselection&#39;).value);             // Recovery current entry             curIndex --;             showNext();         }     }      function deleteEntry()     {         var currentEntry = entries[curIndex];         if (currentEntry)         {             localStorage.removeItem(currentEntry.time);             // Update UI             log(&#39;删除成功!&#39;);             // Reload entries             loadEntries($(&#39;dayselection&#39;).value);             // Go to next entry             curIndex --;             showNext();         }     }      function clearStorage()     {         localStorage.clear();         log(&#39;数据初始化完成!&#39;);     }      function showNext()     {            if (curIndex +1 <= entries.length-1)         {             curIndex ++;             var entry = entries[curIndex];             showTextarea(entry.data);              log(&#39;总共&#39;+entries.length+&#39;个, 当前第&#39;+(curIndex+1)+&#39;个&#39;);         }     }      function showPrevious()     {         if (curIndex-1 >= 0)         {             curIndex --;             var entry = entries[curIndex];                       showTextarea(entry.data);              log(&#39;总共&#39;+entries.length+&#39;个, 当前第&#39;+(curIndex+1)+&#39;个&#39;);         }     }      function showTextarea(data)     {         var target_en = $(&#39;en&#39;);         var target_zh = $(&#39;zh&#39;);         target_en.value = data.en;         target_zh.value = data.zh;     }      function clearTextarea()     {         $(&#39;en&#39;).value = &#39;&#39;;         $(&#39;zh&#39;).value = &#39;&#39;;     }      function $(id)     {         return document.getElementById(id);     }      function log(msg)     {         var target = document.getElementById(&#39;msg&#39;);         target.innerHTML = msg;     }     </script> </head> <body> <div style="position: absolute; top: 50px; left: 50px;">     回顾:<select id="dayselection">       <option value="1"> 1天内 </option>       <option value="0.04166666667"> 1小时内 </option>       <option value="3"> 3天内 </option>       <option value="7"> 7天内 </option>       <option value="14"> 14天内 </option>       <option value="30"> 1月内 </option>       <!-- <option value="">  </option> -->     </select>     </tr>     <input type="button" id="prev" value="上一个" onclick="showPrevious();">     <input type="button" id="next" value="下一个" onclick="showNext();">     <hr> 英语表达:<br/>     <textarea id="en" cols="40" rows="6"></textarea>     <hr> 中文解释:<br/>     <textarea id="zh" cols="40" rows="6"></textarea><br/>     <input type="button" id="save" value="保存内容" onclick="saveEntry();">     <input type="button" id="delete" value="删除内容" onclick="deleteEntry();">          <hr> <p id="msg"></p>  <div> </body> </html>

【相关推荐】

1. HTML5中Localstorage的使用教程_html5教程技巧

2. 浅谈html5 响应式布局

立即学习“前端免费学习笔记(深入)”;

3. HTML5 程序设计

上一篇: 分享h5调用摄像头实现拍照的实例教程
下一篇: 断点续传原理是什么?怎么利用html5实现文件断点续传

作者:admin @ 24资源网   2024-09-18

本站所有软件、源码、文章均有网友提供,如有侵权联系308410122@qq.com

与本文相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。