CN102012907A - 一种浏览器客户端侧的缓存方法及系统 - Google Patents
一种浏览器客户端侧的缓存方法及系统 Download PDFInfo
- Publication number
- CN102012907A CN102012907A CN 201010537649 CN201010537649A CN102012907A CN 102012907 A CN102012907 A CN 102012907A CN 201010537649 CN201010537649 CN 201010537649 CN 201010537649 A CN201010537649 A CN 201010537649A CN 102012907 A CN102012907 A CN 102012907A
- Authority
- CN
- China
- Prior art keywords
- data
- buffer memory
- module
- server
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种浏览器客户端侧缓存的设计方法,用于网络软件的浏览器客户端侧构建缓存,所述的方法包括:拥有不同的数据类型的功能模块各自建立相应的子缓存;所述子缓存可以设置各自的空间大小、数据过期时长、数据淘汰策略;在创建子缓存时,功能模块需要提供与服务器进行交互的方法;缓存封装对数据的操作,判断数据是否存在缓存中,否则通过异步通信从服务器获取数据。同时,本发明还公开了一种浏览器客户端侧的缓存系统。应用了本发明的缓存方法和系统后,功能模块只是在需要的时候使用缓存系统所封装的接口来缓存中来获取数据,而无需关注数据存在何处。这样就大大减轻了功能模块中的代码量,也使得今后的维护和扩展变得方便、灵活。
Description
技术领域
本发明涉及缓存系统设计技术领域,尤其涉及互联网软件的浏览器客户端侧缓存的设计方法及系统。
背景技术
随着云计算和软件即服务(SaaS)概念的普及和推广,越来越多的软件采用了通过网络来交付使用的方式。采取这种交付方式的软件无需在本地计算机上安装任何软件,而它的客户端就是用户计算机上的浏览器。为了使客户端对用户的反应迅速,一般都采用富客户端技术,页面并不是全部由服务器生成,而是通过客户端的后台与服务器进行交互,动态刷新或者局部刷新页面,这时候的客户端不在是简单的接收数据进行呈现,更要存储一部分数据并处理一部分业务逻辑,以便对用户的动作进行快速反应。
缓存最初是指硬盘控制器上的一块内存芯片,具有极快的存取速度,它是硬盘内部存储和外界接口之间的缓冲器。由于硬盘的内部数据传输速度和外界介面传输速度不同,缓存在其中起到一个缓冲的作用。缓存的大小与速度是直接关系到硬盘的传输速度的重要因素,能够大幅度地提高硬盘整体性能。当硬盘存取零碎数据时需要不断地在硬盘与内存之间交换数据,有大缓存,则可以将那些零碎数据暂存在缓存中,减小系统的负荷,也提高了数据的传输速度。
软件系统中通常的缓存设计是,缓存只负责接收和保存数据,系统从数据库中拿到数据,给到缓存,缓存保存数据;如果系统需要某种数据,会查询缓存中是否有此数据,有则直接取出使用,没有则从数据库中取出数据,并放入缓存。
一些涉及到的概念如下:
云计算,狭义云计算是指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的资源(硬件、平台、软件)。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。这种特性经常被称为像水电一样使用IT基础设施。广义云计算是指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的服务。这种服务可以是IT和软件、互联网相关的,也可以使任意其他的服务。
SaaS是Software-as-a-service(软件即服务)的简称,是随着互联网技术的发展和应用软件的成熟,而在21世纪开始兴起的一种完全创新的软件应用模式。它是一种通过Internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件,软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其定购的软件和服务。
发明内容
本发明的目的在于提供一种浏览器客户端侧的缓存的设计方法和系统,能够更好的封装对数据的操作,使得客户端的其他功能模块可以关注在业务逻辑的处理,而无需关心数据在客户端还是在服务器端。
为了实现上述目的,本发明提供以下的技术方案:
一种缓存的设计方法,包括:
拥有不同的数据类型的功能模块各自建立相应的子缓存;
所述子缓存可以设置各自的空间大小、数据过期时长、数据淘汰策略;
在创建子缓存时,功能模块需要提供与服务器进行交互的方法;
创建子缓存后,功能模块所有对数据的操作都通过缓存进行,无需关心数据存在何处;
缓存封装对数据的操作,判断缓存中是否存在所需的有效数据,没有的话通过相应的交互方法与服务器进行通信,获取数据。
一种浏览器客户端侧的缓存系统,所述系统包括接口模块、存储模块、淘汰决策模块、异步通信模块、业务逻辑模块;
所述接口模块提供缓存对外的接口,封装对数据的各种操作;
所述的存储模块保存缓存的各种数据以及各个子缓存的所有设置;
所述的淘汰决策模块在两种场景下会被引入,一个场景是往缓存中添加新数据时,如果缓存容量已经达到所设定的最大值,则需要根据相应子缓存的淘汰策略来判断哪些现有数据应该被淘汰;另一个场景是在查询时,如果所要求的数据存在于相应的子缓存中,需要判断此数据是否已经过期,如果过期则认为是无效数据,需要重新从服务器端获取;
所述的异步通信模块负责根据业务逻辑模块的要求,调用创建子缓存时功能模块所提供的交互方法与服务器端进行交互,执行对数据的相应操作;
所述的业务逻辑模块判断所要求的数据类型,到相应的子缓存进行查询,如果子缓存中不存在相应的有效数据,则通过异步通信模块与服务器进行交互,对数据进行相应的操作;如果子缓存中存在相应的有效数据,则对数据进行所要求的操作,并同时通知数据库进行相应的更新。
通过上述方案,本发明实现了对系统所需的各种数据的封装,实现了对数据有效性的判断和处理。
附图说明
图1是本发明的缓存系统的示意图;
图2是当缓存中存在所要求的有效数据时,一次数据获取(Get)的完整工作流程示意图;
图3是当缓存中不存在所要求的有效数据时,一次数据获取(Get)的完整工作流程示意图;
具体实施方式
下面参照附图对本发明进行详细的说明。以下对本发明的详细说明并不是对本发明的限制。相反,本发明的范围是由所附权利要求来限定的。
本发明的缓存系统的示意图,如图1所示,功能模块101发起对数据的操作请求104到缓存系统102,缓存系统102检查缓存中是否存在所要求的有效数据,如果有,直接返回,如果没有,则发起相应的数据操作异步请求105到服务器,在拿到服务器返回的数据操作结果106后,缓存系统102根据操作类型更新数据操作结果106到缓存中,并返回数据操作结果107给功能模块101。
本发明的缓存系统的内部组成示意图,如图2和图3所示,包括接口模块、业务逻辑模块、淘汰决策模块、存储模块和异步通信模块。
下面以一次典型的数据获取(Get)操作为例,来详细说明缓存系统的完整工作流程。
如图2所示,是当缓存中存在所要求的有效数据时,一次数据获取(Get)的完整工作流程:
步骤206:接口模块201接收到功能模块发来的数据操作请求;
步骤207:接口模块201通知业务逻辑模块202所收到的操作的数据类型、操作类型、所要操作的数据的key值;
步骤208:业务逻辑模块202向存储模块204查询相应数据类型的相应key值的数据是否存在;
步骤209:存储模块204根据数据类型,查找相应的子缓存存储区,发现有相应key值的数据存在,于是发送数据的相关信息给淘汰决策模块203;
步骤210:淘汰决策模块203根据收到的数据类型,查到相应子缓存的过期时长和淘汰策略的设置,对数据信息进行判断,发现数据没有过期,为有效数据,将此结果通知存储模块204;
步骤211:存储模块204返回所要求的有效数据给业务逻辑模块202;
步骤212:业务逻辑模块202返回所要求的有效数据给接口模块201;
步骤213:接口模块201返回所要求的有效数据给功能模块;
如图3所示,是当缓存中不存在所要求的有效数据时,一次数据获取(Get)的完整工作流程:
步骤306:接口模块301接收到功能模块发来的数据操作请求;
步骤307:接口模块301通知业务逻辑模块302所收到的操作的数据类型、操作类型、所要操作的数据的key值;
步骤308:业务逻辑模块302向存储模块304查询相应数据类型的相应key值的数据是否存在;
步骤309:存储模块304根据数据类型,查找相应的子缓存存储区,发现相应key值的数据不存在,通知业务逻辑模块302数据不存在;
步骤310:业务逻辑模块302通知异步通信模块305去获取相应数据类型相应key值的数据;
步骤311:异步通信模块305根据数据类型,查到相应子缓存的获取操作的服务器交互方法,调用此交互方法,向服务器发起请求;
步骤312:异步通信模块305收到服务器返回的数据;
步骤313:异步通信模块305返回收到的数据给业务逻辑模块302;
步骤314:业务逻辑模块302将收到的数据发送给存储模块304,要求保存;
步骤315:存储模块304要求淘汰决策模块303判断相应子缓存是否已满、是否可以直接存入新的数据;
步骤316:淘汰决策模块303查找相应子缓存的最大容量设置,判断相应子缓存是否已经达到最大容量;如果未达到,通知存储模块304可以直接存入新数据;如果已经达到最大容量,淘汰决策模块303根据子缓存所设置的淘汰策略选择最符合淘汰策略的一条已有数据进行淘汰,然后通知存储模块304可以直接存入新数据;
步骤317:存储模块304保存新数据到相应子缓存,通知业务逻辑模块已保存;
步骤318:业务逻辑模块302返回所要求的有效数据给接口模块301;
步骤319:接口模块301返回所要求的有效数据给功能模块;
通过以上的详细说明可以看出,应用了本发明的缓存系统后,功能模块只是在需要的时候使用缓存系统所封装的接口来缓存中来获取数据,而无需关注数据存在何处。这样就大大减轻了功能模块中的代码量,也使得今后的维护和扩展变得方便、灵活。
综上所述,为一种浏览器客户端侧的缓存方法和系统的设计说明。上述的示例性的实施方案在所有方面趋于是用来描述而不是限制本发明。因此,本发明能够在具体实现中具有许多变种,也并不局限于浏览器客户端,本领域的技术人员能够通过包含在本文中的描述得到这些变种。所有在本发明的精神和原则之内的任何变种、修改、替换等,均应包含在本发明的权利要求范围之内。
Claims (8)
1.一种缓存设计方法,用于网络软件的浏览器客户端侧构建缓存,封装对数据的访问,其特征在于,所述的方法包括:
拥有不同的数据类型的功能模块各自建立相应的子缓存;
所述子缓存可以设置各自的空间大小、数据过期时长、数据淘汰策略;
在创建子缓存时,功能模块需要提供与服务器进行交互的方法;
创建子缓存后,功能模块所有对数据的操作都通过缓存进行,无需关心数据存在何处;
缓存封装对数据的操作,判断缓存中是否存在所需的有效数据,没有的话通过相应的交互方法与服务器进行通信,获取数据。
2.如权利要求1所述的一种缓存设计方法,其特征在于,所述的与服务器通信进行数据操作的交互方法,由功能模块在创建子缓存时定义,包括但不限于:初始化数据获取、单个或多个数据获取、数据更新、删除数据等。
3.一种浏览器客户端侧的缓存系统,所述系统包括接口模块、存储模块、淘汰决策模块、异步通信模块、业务逻辑模块;接口模块接收功能模块对数据的操作请求,通知业务逻辑模块,业务逻辑模块判断该数据是否存在于存储模块,如存在,由淘汰决策模块判断该数据是否已过期,如果未过期则为有效数据,直接返回;如果已过期,则通过异步通信模块从服务器重新获取该数据再返回;如果数据不存在,则通过异步通信模块从服务器获取该数据,淘汰决策模块判断相应子缓存有无达到最大容量,如果达到则根据相应淘汰策略淘汰旧数据,通知存储模块保持新数据并返回;
4.如权利要求3所述的一种浏览器客户端侧的缓存系统,其特征在于,所述的接口模块提供缓存对外的接口,封装对数据的各种操作;
5.如权利要求3所述的一种浏览器客户端侧的缓存系统,其特征在于,所述的存储模块保存缓存的各种数据以及各个子缓存的所有设置;
6.如权利要求3所述的一种浏览器客户端侧的缓存系统,其特征在于,所述的淘汰决策模块在两种场景下会被引入,一个场景是往缓存中添加新数据时,如果缓存容量已经达到所设定的最大值,则需要根据相应子缓存的淘汰策略来判断哪些现有数据应该被淘汰;另一个场景是在查询时,如果所要求的数据存在于相应的子缓存中,需要判断此数据是否已经过期,如果过期则认为是无效数据,需要重新从服务器端获取;
7.如权利要求3所述的一种浏览器客户端侧的缓存系统,其特征在于,所述的异步通信模块负责根据业务逻辑模块的要求,调用创建子缓存时功能模块所提供的交互方法与服务器端进行交互,执行对数据的相应操作;
8.如权利要求3所述的一种浏览器客户端侧的缓存系统,其特征在于,所述的业务逻辑模块判断所要求的数据类型,到相应的子缓存进行查询,如果子缓存中不存在相应的有效数据,则通过异步通信模块与服务器进行交互,对数据进行相应的操作;如果子缓存中存在相应的有效数据,则对数据进行所要求的操作,并同时通知数据库进行相应的更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010537649 CN102012907A (zh) | 2010-11-10 | 2010-11-10 | 一种浏览器客户端侧的缓存方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010537649 CN102012907A (zh) | 2010-11-10 | 2010-11-10 | 一种浏览器客户端侧的缓存方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102012907A true CN102012907A (zh) | 2011-04-13 |
Family
ID=43843080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010537649 Pending CN102012907A (zh) | 2010-11-10 | 2010-11-10 | 一种浏览器客户端侧的缓存方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102012907A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103177027A (zh) * | 2011-12-23 | 2013-06-26 | 北京新媒传信科技有限公司 | 获取动态Feed索引的方法和系统 |
CN103186552A (zh) * | 2011-12-28 | 2013-07-03 | 北京新媒传信科技有限公司 | 一种业务服务中客户端访问数据的方法和系统 |
CN103631891A (zh) * | 2013-11-15 | 2014-03-12 | 北京奇虎科技有限公司 | 浏览器磁盘缓存的处理方法与浏览器 |
CN104657401A (zh) * | 2014-10-21 | 2015-05-27 | 北京齐尔布莱特科技有限公司 | 一种web缓存的更新方法 |
CN104919453A (zh) * | 2012-12-27 | 2015-09-16 | 微软技术许可有限责任公司 | 数据库内容的每用户汇总 |
CN105095360A (zh) * | 2015-06-25 | 2015-11-25 | 小米科技有限责任公司 | 用于浏览器处理用户请求的方法以及装置 |
CN105242960A (zh) * | 2015-09-21 | 2016-01-13 | 青岛海信电器股份有限公司 | 一种处理系统功能调用请求的方法及浏览器 |
CN105279163A (zh) * | 2014-06-16 | 2016-01-27 | Tcl集团股份有限公司 | 一种缓存数据的更新及存储方法及其系统 |
CN106021468A (zh) * | 2016-05-17 | 2016-10-12 | 上海携程商务有限公司 | 分布式缓存和本地缓存的更新方法和系统 |
CN110795457A (zh) * | 2019-09-24 | 2020-02-14 | 苏宁云计算有限公司 | 数据缓存处理方法、装置、计算机设备和存储介质 |
CN111897819A (zh) * | 2020-07-31 | 2020-11-06 | 平安普惠企业管理有限公司 | 数据存储方法、装置、电子设备及存储介质 |
CN112346647A (zh) * | 2019-08-06 | 2021-02-09 | 浙江宇视科技有限公司 | 数据存储方法、装置、设备和介质 |
CN116860862A (zh) * | 2023-09-05 | 2023-10-10 | 北京百特云享科技有限公司 | 低代码平台的前端缓存方法及相关设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020026507A1 (en) * | 2000-08-30 | 2002-02-28 | Sears Brent C. | Browser proxy client application service provider (ASP) interface |
CN101201827A (zh) * | 2006-12-14 | 2008-06-18 | 阿里巴巴公司 | 一种网页显示的方法和系统 |
CN101257485A (zh) * | 2007-03-02 | 2008-09-03 | 华为技术有限公司 | web应用系统及方法 |
-
2010
- 2010-11-10 CN CN 201010537649 patent/CN102012907A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020026507A1 (en) * | 2000-08-30 | 2002-02-28 | Sears Brent C. | Browser proxy client application service provider (ASP) interface |
CN101201827A (zh) * | 2006-12-14 | 2008-06-18 | 阿里巴巴公司 | 一种网页显示的方法和系统 |
CN101257485A (zh) * | 2007-03-02 | 2008-09-03 | 华为技术有限公司 | web应用系统及方法 |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103177027A (zh) * | 2011-12-23 | 2013-06-26 | 北京新媒传信科技有限公司 | 获取动态Feed索引的方法和系统 |
CN103177027B (zh) * | 2011-12-23 | 2016-02-17 | 北京新媒传信科技有限公司 | 获取动态Feed索引的方法和系统 |
CN103186552A (zh) * | 2011-12-28 | 2013-07-03 | 北京新媒传信科技有限公司 | 一种业务服务中客户端访问数据的方法和系统 |
CN103186552B (zh) * | 2011-12-28 | 2016-04-06 | 北京新媒传信科技有限公司 | 一种业务服务中客户端访问数据的方法和系统 |
CN104919453B (zh) * | 2012-12-27 | 2018-10-19 | 微软技术许可有限责任公司 | 数据库内容的每用户汇总 |
CN104919453A (zh) * | 2012-12-27 | 2015-09-16 | 微软技术许可有限责任公司 | 数据库内容的每用户汇总 |
US10678806B2 (en) | 2012-12-27 | 2020-06-09 | Microsoft Technology Licensing, Llc | Per-user aggregation of database content |
CN103631891A (zh) * | 2013-11-15 | 2014-03-12 | 北京奇虎科技有限公司 | 浏览器磁盘缓存的处理方法与浏览器 |
CN105279163A (zh) * | 2014-06-16 | 2016-01-27 | Tcl集团股份有限公司 | 一种缓存数据的更新及存储方法及其系统 |
CN104657401A (zh) * | 2014-10-21 | 2015-05-27 | 北京齐尔布莱特科技有限公司 | 一种web缓存的更新方法 |
CN105095360A (zh) * | 2015-06-25 | 2015-11-25 | 小米科技有限责任公司 | 用于浏览器处理用户请求的方法以及装置 |
CN105242960B (zh) * | 2015-09-21 | 2020-02-18 | 青岛海信电器股份有限公司 | 一种处理系统功能调用请求的方法及浏览器 |
CN105242960A (zh) * | 2015-09-21 | 2016-01-13 | 青岛海信电器股份有限公司 | 一种处理系统功能调用请求的方法及浏览器 |
CN106021468A (zh) * | 2016-05-17 | 2016-10-12 | 上海携程商务有限公司 | 分布式缓存和本地缓存的更新方法和系统 |
CN106021468B (zh) * | 2016-05-17 | 2019-11-19 | 上海携程商务有限公司 | 分布式缓存和本地缓存的更新方法和系统 |
CN112346647A (zh) * | 2019-08-06 | 2021-02-09 | 浙江宇视科技有限公司 | 数据存储方法、装置、设备和介质 |
CN112346647B (zh) * | 2019-08-06 | 2024-03-29 | 浙江宇视科技有限公司 | 数据存储方法、装置、设备和介质 |
CN110795457A (zh) * | 2019-09-24 | 2020-02-14 | 苏宁云计算有限公司 | 数据缓存处理方法、装置、计算机设备和存储介质 |
CN110795457B (zh) * | 2019-09-24 | 2023-05-05 | 苏宁云计算有限公司 | 数据缓存处理方法、装置、计算机设备和存储介质 |
CN111897819A (zh) * | 2020-07-31 | 2020-11-06 | 平安普惠企业管理有限公司 | 数据存储方法、装置、电子设备及存储介质 |
CN116860862A (zh) * | 2023-09-05 | 2023-10-10 | 北京百特云享科技有限公司 | 低代码平台的前端缓存方法及相关设备 |
CN116860862B (zh) * | 2023-09-05 | 2023-12-08 | 北京百特云享科技有限公司 | 低代码平台的前端缓存方法及相关设备 |
CN116860862B8 (zh) * | 2023-09-05 | 2023-12-26 | 北京百特云享科技有限公司 | 低代码平台的前端缓存方法及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102012907A (zh) | 一种浏览器客户端侧的缓存方法及系统 | |
CN101090401B (zh) | 一种群集环境下的数据缓存方法及系统 | |
CN102629941B (zh) | 云计算系统中虚拟机镜像缓存的方法 | |
KR102520039B1 (ko) | 에너지 및 시간 효율적인 컨텐츠 배포 및 전송을 지원하기 위한 시스템 및 방법 | |
US8762480B2 (en) | Client, brokerage server and method for providing cloud storage | |
CN102075554B (zh) | 一种基于soa架构的服务处理方法及其系统 | |
CN102843426B (zh) | 基于智能父节点的Web缓存资源共享系统和方法 | |
CN101207515B (zh) | 一种多机共享内存的处理方法、实现方法和同步方法 | |
JP2013240106A (ja) | ドメイン・ネーム・システム・ルックアップ待ち時間の削減 | |
CN100437590C (zh) | 预取对象的方法 | |
TW200818010A (en) | System and method for managing objects according to the common information model | |
CN113010818A (zh) | 访问限流方法、装置、电子设备及存储介质 | |
CN102420814A (zh) | 一种数据访问方法、装置及服务器 | |
CN104866976A (zh) | 面向多租户的管理信息系统 | |
CN102045399B (zh) | 云计算模式文件系统及文件读取方法 | |
US20160308871A1 (en) | Network element data access method and apparatus, and network management system | |
US10701159B2 (en) | Method and apparatus for implementing device sharing | |
CN101141482B (zh) | 网络资源管理系统及方法 | |
CN101547414B (zh) | 短信计费系统及方法 | |
KR100964374B1 (ko) | 전파식별 태그의 메모리 관리 장치 및 방법 | |
US10171991B2 (en) | Making subscriber data addressable as a device in a mobile data network | |
CN104378396B (zh) | 数据管理装置及方法 | |
CN105528024A (zh) | 用于网际协议通信的电子装置 | |
CN111488324B (zh) | 一种基于消息中间件的分布式网络文件系统及其工作方法 | |
CN111125025B (zh) | 元数据的存储系统、存储方法、调用方法、调用装置和可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110413 |