localstorage本地定时缓存
在做一个网站时,起初直接就是从服务器获取数据进行交互,没有用一些本地缓存做优化,项目做下来就特别卡,并且对服务器造成了很大的压力,经过请教,查询,找到这样一个定时缓存的例子。html5定时缓存,从数据库获取到数据,如果不是实时变化的可以缓存到本地,隔一段时间后再次更新,可以提高网站浏览速度,也可以减少服务器压力。各位看官在做一些项目优化是可以试着应用上这个缓存的功能。
 var MyLocalStorage = {
               Cache: {
                    /**
                     * 总容量5M
                     * 存入缓存,支持字符串类型、json对象的存储
                     * 页面关闭后依然有效 ie7+都有效
                     * @param key 缓存key
                     * @param stringVal
                     * @time 数字 缓存有效时间(秒) 默认60s
                     * 注:localStorage 方法存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。不能控制缓存时间,故此扩展
                     * */
                    put: function(key, stringVal, time) {
                         try {
                              if(!localStorage) {
                                   return false;
                              }
                              if(!time || isNaN(time)) {
                                   time = 60;
                              }
                              var cacheExpireDate = (new Date() - 1) + time * 1000;
                              var cacheVal = {
                                   val: stringVal,
                                   exp: cacheExpireDate
                              };
                              localStorage.setItem(key, JSON.stringify(cacheVal)); //存入缓存值
                         } catch(e) {}
                    },
                    /**获取缓存*/
                    get: function(key) {
                         try {
                              if(!localStorage) {
                                   return false;
                              }
                              var cacheVal = localStorage.getItem(key);
                              var result = JSON.parse(cacheVal);
                              var now = new Date() - 1;
                              if(!result) {
                                   return null;
                              } //缓存不存在
                              if(now > result.exp) { //缓存过期
                                   this.remove(key);
                                   return "";
                              }
                              return result.val;
                         } catch(e) {
                              this.remove(key);
                              return null;
                         }
                    },
                    /**移除缓存,一般情况不手动调用,缓存过期自动调用*/
                    remove: function(key) {
                         if(!localStorage) {
                              return false;
                         }
                         localStorage.removeItem(key);
                    },
                    /**清空所有缓存*/
                    clear: function() {
                         if(!localStorage) {
                              return false;
                         }
                         localStorage.clear();
                    }
               } //end Cache
           }
           
        //调用缓存函数
           function getHotList() {
               try {
                    var cache = MyLocalStorage.Cache.get("cacheKey");
                    if(cache == null) {
                         $.get("php/timeUpdata.php", function(data) {
                              //                      result = JSON.parse(data);//字符串转josn串
                              MyLocalStorage.Cache.put("cacheKey", data, 2 * 60);
                         });
                    }
               } catch(e) {}
           }
           getHotList();
如果缓存的数据量比较大的话,就需要将数据转换为string格式。
localstorage本地定时缓存的更多相关文章
- 采用localStorage做定时缓存
		背景 页面采用ajax获取数据时,每访问一次就会发送一次请求向服务端获取数据,可是呢. 有些数据更新的又不频繁,所以我就想着使用localStorage进行本地存储,然后在固定间隔时在去更新数据.(下 ... 
- 关于HTML5本地缓存技术LocalStorage 本地存储 和 SessionStorage
		如果你想在用户访问的时候记录或者记住他们的行为,你会想到的是什么,cookie 和session.但今天告诉你还有两种或者说是1种吧 那就是html5的 LocalStorage 本地存储和 Sess ... 
- 面localStorage用作数据缓存的简易封装
		面localStorage用作数据缓存的简易封装 最近做了一些前端控件的封装,需要用到数据本地存储,开始采用cookie,发现很容易就超过了cookie的容量限制,于是改用localStorage,但 ... 
- 《前端之路》之 Cookie && localStorage && Session Storage 缓存相关
		08: Cookie && localStorage && Session Storage 缓存相关 客户端.前端 存储 一. 起 因 首先解释下为什么想来写这个关于前 ... 
- JavaScript工具类(三):localStorage本地储存
		localStorage Web 存储 API 提供了 sessionStorage (会话存储) 和 localStorage(本地存储)两个存储对象来对网页的数据进行添加.删除.修改.查询操作. ... 
- HTML5 localStorage本地存储
		介绍 localStorage(本地存储)的使用方式.包括对存储对象的添加.修改.删除.事件触发等操作. 目录 1. 介绍 1.1 说明 1.2 特点 1.3 浏览器最小版本支持 1.4 适合场景 2 ... 
- HTML5 LocalStorage 本地存储
		HTML5 LocalStorage 本地存储 说到本地存储,这玩意真是历尽千辛万苦才走到HTML5这一步,之前的历史大概如下图所示: 最早的Cookies自然是大家都知道,问题主要就是太小,大概也就 ... 
- (转载)HTML5 LocalStorage 本地存储
		原文地址:http://www.cnblogs.com/xiaowei0705/archive/2011/04/19/2021372.html HTML5 LocalStorage 本地存储 说到本地 ... 
- Localstorage本地存储兼容函数
		前言HTML5提供了本地存储的API:localstorage对象和sessionStorage对象,实现将数据存储到用户的电脑上.Web存储易于使用.支持大容量(但非无限量)数据同时存储,同时兼容当 ... 
随机推荐
- Java历程-初学篇 Day07 循环结构2    for循环
			一,格式 for(赋值语句//为循环变量赋初值;条件语句//循环结构的循环条件;赋值语句//迭代,修改循环变量的值){ //循环体; } 二,简单举例 for(int i=1;i<=10;i++ ... 
- webpack2使用ch8-loader解析less less自动添加浏览器前缀
			1 目录结构 安装依赖 "less": "^2.7.2","less-loader": "^4.0.3", 2 web ... 
- C#微信公众号/订阅号开发 接口源码
			using System; using System.Web; using System.IO; using System.Text; using System.Web.Security; using ... 
- Hibernate 学习笔记 - 1
			一.Hibernate 的环境搭建.配置及 HelloWorld 1.在 Eclipse 中搭建 Hibernate 环境 下载 Hibernate 离线 jar 包(jbosstools-4.4.4 ... 
- 关于JavaScript日期类型处理的总结
			在任何一门开发语言中,对日期时间类型的处理,必不可少也非常重要,长期以来对于JS的日期类型处理较为苍白.在这里做一个浅显的总结. Date 对象用于处理日期和时间.Date 对象用于处理日期和时间.D ... 
- Azure 基础:用 PowerShell 自动登录
			PowerShell 是管理 Azure 的最好方式,因为我们可以使用脚本把很多的工作自动化.比如把 Azure 上的虚拟机关机,并在适当的时间把它开机,这样我们就能节省一些开支,当然我们同时也为减少 ... 
- LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal (用先序和中序树遍历来建立二叉树)
			Given preorder and inorder traversal of a tree, construct the binary tree. Note:You may assume that ... 
- [PGM] Bayes Network and Conditional Independence
			2 - 1 - Semantics & Factorization 2 - 2 - Reasoning Patterns 2 - 3 - Flow of Probabilistic Influ ... 
- 关于session共享的解决方法
			当网站业务规模和访问量的逐步增大,原本由单台服务器.单个域名组成的网站架构可能已经无法满足发展需要 此时会购买更多的服务器,并且以频道化的方式启用多个二级子域名,然后根据业务功能将网站分别部署在独立的 ... 
- 译:Asp.Net Identity与Owin,到底谁是谁?
			送给正在学习Asp.Net Identity的你 :-) 原文出自 trailmax 的博客AspNet Identity and Owin. Who is who. Recently I have ... 
