`
征途2010
  • 浏览: 246547 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

前端数据缓存(一)

阅读更多

说到缓存一般针对后台缓存数据,提高数据查询效率,减少响应时间。不过在前端开发中也会遇到一些需要缓存数据的时候,比如说存储页面查询条件翻页数据、全局变量等,如果小的数据可以存储在cookies中,但是数据多了就不行了,下面介绍下前台缓存的简单实现:

/**
 * cache 类定义,cache对象在main.jsp 中定义
 * @param {Object} scope
 * @memberOf {TypeName} 
 * @return {TypeName} 
 */
var BaseCache = function(scope){
	this.scope = scope;
	this.gloableCache = this._getPrmGoableCache();
	//init
	if(this.gloableCache){
		if(this.gloableCache[this.scope] == undefined){//全局cache,所以不会重新生成cache
			this.gloableCache[this.scope] = {};
		}
	}
	
}

 

定义一个构造函数,不同的功能有不同的缓存,定义缓存基本方法

BaseCache.prototype = {
	_getPrmGoableCache : function(){
		if(top===self){//topest window
            if(window.prmGloableCache){
            	return window.prmGloableCache;
            }
        }else{
            var p=parent;
            while(p){
                if(p.prmGloableCache|| p.top==p.self){
                    break;
                }else{
                    p=p.parent;
                }
            }
	        if(p.prmGloableCache){
	            return p.prmGloableCache;
	        }
        }
	},
	put:function(key, value){
		if(this.gloableCache && this.gloableCache[this.scope]){
			this.gloableCache[this.scope][key] = value;
		}
	},
	get:function(key){
		if(this.gloableCache && this.gloableCache[this.scope]){
			return this.gloableCache[this.scope][key];
		}
	},
	clear:function(){
		if(this.gloableCache && this.gloableCache[this.scope]){
			return this.gloableCache[this.scope] = {};
		}
	},
	clearByKey:function(key){
		if(this.gloableCache && this.gloableCache[this.scope]){
			delete this.gloableCache[this.scope][key];
		}
	}
};

 下面举个例子来使用该缓存,比如说缓存页面查询条件:

 

var paramEchoCache = new BaseCache("paramEcho");

//保存form查询条件
	$.fn.saveQueryParam = function(){
		$(this).each(function(i){//一个页面上可能有多个form
			var forms = paramEchoCache.get(window.location.href);
			if(forms == undefined){
				forms = {};
				paramEchoCache.put(window.location.href,forms);
			}
			forms[$(this).attr('id')] = $(this).serializeArray();
		});
	}

//获取查询条件
	$.fn.getQueryParam = function(){
		var forms = paramEchoCache.get(window.location.href);
		if(forms){
			var fields = forms[$(this).attr('id')];
			if(fields){
				return serializeJson(fields);
			}
		}
		return {};
	}

 

在查询后,调用form.saveQueryParam来保存查询条件,在返回需要回显查询条件时,调用 getQueryParam()。

 

分享到:
评论

相关推荐

    JS前端数据缓存,用于富交互的前端数据缓存

    这些应用往往需要处理大量数据,并实时更新显示,因此前端数据缓存技术变得越来越重要。本文将深入探讨JS前端数据缓存的原理、实现方式及其在富交互场景中的应用。 首先,前端数据缓存的主要目标是减少网络请求,...

    短小精悍的前端缓存插件解决前端缓存问题

    npm-storage 是一个轻量级的前端存储解决方案,它基于浏览器的本地存储机制(如localStorage或sessionStorage),并提供了一种方便的方式来管理和更新缓存数据。这个插件尤其适合那些需要处理大量静态资源或动态数据...

    轻量级前端缓存工具

    在前端开发中,缓存是一种优化策略,用于存储经常访问的数据,以减少网络请求,提高应用性能。"轻量级前端缓存工具"是专为JavaScript环境设计的一个小型库,它对浏览器内置的`localStorage`进行了封装,以提供更便捷...

    JSRepository_前端资源缓存版本库_

    "JSRepository_前端资源缓存版本库_" 提供了一种有效的方法来管理和更新这些资源,特别是当应用涉及大量的音频、图像、小视频、JavaScript 文件或数据对象时。这个库利用了浏览器的indexDB API,它是一种离线存储...

    利用js-cookie实现前端设置缓存数据定时失效

    在现代Web开发中,前端缓存数据是一种常见需求,可以有效提升用户体验和减少服务器负载。然而,缓存数据必然涉及一个定时失效的问题,以确保用户总是能够获取到最新的数据。本文将详细介绍如何利用js-cookie库来实现...

    一种缓存数据流信息的处理器前端设计.pdf

    标题中的“一种缓存数据流信息的处理器前端设计”指的是在处理器架构中,为了提高多线程并行处理能力和指令级并行性(ILP),提出的一种新的前端设计方法。这种设计着重于缓存数据流信息,以提升处理器的性能和效率。 ...

    Bmob网络加载缓存数据

    在移动应用中,网络加载和数据缓存是常见的需求,尤其对于那些需要频繁读取数据的应用,如新闻阅读、社交应用等。Bmob提供了数据缓存功能,能够帮助开发者实现高效的网络数据处理。 首先,**网络加载**是将服务器上...

    大数据量高性能前端表格grid 动态加载数据

    "大数据量高性能前端表格grid 动态加载数据"这一技术主题,旨在优化用户体验,解决因一次性加载大量数据导致的页面卡顿问题。本文将深入探讨如何实现这种高效的数据加载策略。 首先,"高性能grid"是指一种能够快速...

    axios-request-cache:前端数据接口缓存

    这里讲的前端缓存是指前端对接口数据的缓存处理,而不是通过 HTTP(s)缓存 需要配合axios使用 安装 通过npm安装: npm install axios-request-cache --save 通过yarn安装: yarn add axios-request-cache 参数说明 ...

    js前端Excel大数据处理导入

    4. 缓存策略:利用浏览器缓存机制,避免重复处理已读取的数据块。 总结来说,JavaScript前端处理Excel大数据导入的关键在于分片上传、合理的数据处理策略以及良好的用户体验设计。通过结合HTML5的File API、第三方...

    websocket实现前端页面动态刷新数据库中数据

    WebSocket是一种在客户端与服务器之间建立长连接的协议,它允许双方进行全双工通信,即数据可以在两个方向上同时传输,极大地提高了实时性。在传统的HTTP协议中,客户端需要不断发起请求来获取新数据,而WebSocket则...

    前端自动添加,保存到缓存

    在前端开发中,缓存是...总结来说,"前端自动添加,保存到缓存"涉及的是前端缓存策略,尤其是HTML5的Service Worker和Cache API的使用,它们允许开发者实现高效、自动化的本地数据缓存,提高Web应用的性能和用户体验。

    jQuery数据缓存用法分析

    jQuery数据缓存是一种高效的方法,用于在DOM元素上存储和检索数据,同时避免了JavaScript中的内存泄漏问题,尤其是与DOM元素绑定时常见的循环引用风险。本文将深入探讨jQuery的`data()`方法及其相关使用规范。 一、...

    Vuex和前端缓存的整合策略详解

    缓存数据来源是预知的,我们可以预先定义哪些 mutation 是缓存相关的。 我们期望这个过程更自然一点,通过某种变化自动映射,使以后不管缓存类别增加还是减少都能修改极少的代码来应对变化。 Vuex的插件可以拦截 ...

    数据仓库前端展示工具的研究与应用

    5. **性能优化**:对于大规模数据,工具需要有良好的性能优化策略,如数据缓存、预计算、分片查询等,以保证响应速度。 6. **安全性**:保障数据访问的安全性,通过权限管理控制不同用户对数据的查看和操作权限。 ...

    缓存技术详解

    缓存技术是一种用于提高数据访问速度和系统响应时间的技术。它通过在靠近应用的地方存储数据副本,减少对后端系统的请求次数,从而加快数据获取的速度。缓存在Web开发和移动开发中扮演着极其重要的角色。 **缓存...

    前端数据可视化大屏-echarts数字大屏模版-某公司数据分析大数据监控-直接可对接数据

    "前端数据可视化大屏"是一种高效的数据展示工具,它将复杂的数据转化为易于理解的图表和图形,帮助用户快速洞察业务状况。本项目是基于Echarts库开发的数字大屏模板,专门用于某公司的数据分析和大数据监控,具有...

    j2EE 缓存 Web前端优化 后台 服务器优化

    - **Hibernate一级缓存**:Session级别,存储实体对象,事务范围内有效,用于同一事务内的数据共享。 - **Hibernate二级缓存**:SessionFactory级别,跨Session,可配置为进程内或集群间共享,缓存查询结果和集合...

    数据平台前端缓存技术方案Memcached-Redis.v1.0[汇编].pdf

    数据平台前端缓存技术方案主要涉及两种常用的内存缓存服务:Memcached和Redis。本文将重点解析Memcached的相关知识。 1. **Memcached基础** - **M的概念**:Memcached是一个高性能的分布式内存对象缓存系统,它...

    CPU缓存+北桥+南桥+前端总线.pdf

    **一级缓存(L1 Cache)**是CPU内部最接近运算核心的高速缓存,分为数据缓存(D-Cache)和指令缓存(I-Cache)。数据缓存存储运算过程中使用的数据,而指令缓存则存放执行这些操作所需的指令。L1缓存的容量相对较小,但...

Global site tag (gtag.js) - Google Analytics