CN110555184A - 资源缓存方法、装置、计算机设备和存储介质 - Google Patents
资源缓存方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110555184A CN110555184A CN201910841446.XA CN201910841446A CN110555184A CN 110555184 A CN110555184 A CN 110555184A CN 201910841446 A CN201910841446 A CN 201910841446A CN 110555184 A CN110555184 A CN 110555184A
- Authority
- CN
- China
- Prior art keywords
- resource
- cache
- webpage
- loading
- caching
- 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
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000004590 computer program Methods 0.000 claims description 21
- 230000008030 elimination Effects 0.000 claims description 14
- 238000003379 elimination reaction Methods 0.000 claims description 14
- 230000007246 mechanism Effects 0.000 claims description 6
- 238000011161 development Methods 0.000 abstract description 7
- 238000012423 maintenance Methods 0.000 abstract description 5
- 238000012545 processing Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请涉及一种资源缓存方法、***、计算机设备和存储介质。方法包括:获取待加载网页的第一加载请求;获取第一加载请求中携带的加载网址;根据加载网址中携带的缓存参数对待加载网页的资源进行缓存,得到本地缓存资源;当获取到对待加载网页的第二加载请求时,对第二加载请求进行拦截;当查找到与第二加载请求对应的本地缓存资源时,阻止第二加载请求发送至服务器,返回本地缓存资源。这种精准控制资源进行缓存的方式,在新增了待加载网页后,也可以很方便迅速的接入新的网页,并对新接入的网页实现精准的资源缓存控制,也无需繁琐的额外处理,这种方式大幅降低了维护成本和开发成本,提高了开发效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种资源缓存方法、装置、计算机设备和存储介质。
背景技术
缓存是指将获取到的数据进行保存,下一次再访问时,则可以直接获取到本地的缓存数据,而无需再次向服务器请求获取。现有技术中,为了解决前端的资源缓存问题,通常采用的方法是,单纯的依赖客户端侧,且依赖于浏览器实现的PWA技术(Progressive WebApp,渐进式的网页应用程序),通过PWA可以实现离线缓存功能,也就是说,可以在用户没有网络的情况下,仍然可以正常加载前端资源,运行相应程序逻辑,同时可以有效管理资源缓存。
然而,使用PWA技术的话,会导致在特定项目中接入工作量很大,不仅要改造项目脚手架,以自动生成需要的mainifest.json文件,并生成特定的代码***到程序中来启用浏览器的PWA技术。其中的理解成本较高,同时还需要管理好各种资源的缓存关系,而且该技术方案依赖于浏览器是否支持,目前只有较新的chrome浏览器以及相应内核的新版本浏览器支持;safari暂不支持该特性,因此实际上的操作可行度很低,维护成本也较高。
发明内容
基于此,有必要针对上述技术问题,提供一种能够降低开发难度且更维护成本较低的资源缓存方法、装置、计算机设备和存储介质。
一种资源缓存方法,所述方法包括:
获取待加载网页的第一加载请求;
获取所述第一加载请求中携带的加载网址;
根据所述加载网址中携带的缓存参数对所述待加载网页的资源进行缓存,得到本地缓存资源;
当获取到对所述待加载网页的第二加载请求时,对所述第二加载请求进行拦截;
当查找到与所述第二加载请求对应的所述本地缓存资源时,阻止所述第二加载请求发送至服务器,返回所述本地缓存资源。
一种资源缓存装置,所述装置包括:
加载请求获取模块,用于获取待加载网页的第一加载请求;获取所述第一加载请求中携带的加载网址;
资源缓存模块,用于根据所述加载网址中携带的缓存参数对所述待加载网页的资源进行缓存,得到本地缓存资源;
缓存加载模块,用于当获取到对所述待加载网页的第二加载请求时,对所述第二加载请求进行拦截;当查找到与所述第二加载请求对应的所述本地缓存资源时,阻止所述第二加载请求发送至服务器,返回所述本地缓存资源。
一种计算机设备,包括存储器、处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取待加载网页的第一加载请求;
获取所述第一加载请求中携带的加载网址;
根据所述加载网址中携带的缓存参数对所述待加载网页的资源进行缓存,得到本地缓存资源;
当获取到对所述待加载网页的第二加载请求时,对所述第二加载请求进行拦截;
当查找到与所述第二加载请求对应的所述本地缓存资源时,阻止所述第二加载请求发送至服务器,返回所述本地缓存资源。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取待加载网页的第一加载请求;
获取所述第一加载请求中携带的加载网址;
根据所述加载网址中携带的缓存参数对所述待加载网页的资源进行缓存,得到本地缓存资源;
当获取到对所述待加载网页的第二加载请求时,对所述第二加载请求进行拦截;
当查找到与所述第二加载请求对应的所述本地缓存资源时,阻止所述第二加载请求发送至服务器,返回所述本地缓存资源。
上述资源缓存方法、装置、计算机设备和存储介质,通过获取待加载网页的第一加载请求,获取第一加载请求中携带的加载网址,根据加载网址中携带的缓存参数对待加载网页的资源进行缓存,得到本地缓存资源,当获取到对待加载网页的第二加载请求时,对第二加载请求进行拦截,当查找到与第二加载请求对应的本地缓存资源时,阻止第二加载请求发送至服务器,返回本地缓存资源,通过这种资源缓存和加载的方式,可以大幅度的降低资源的加载时间,也很好的提升了用户体验,而对于开发者而言,这种精准控制资源进行缓存的方式,在新增了待加载网页后,也可以很方便迅速的接入新的网页,并对新接入的网页实现精准的资源缓存控制,也无需繁琐的额外处理,这种方式大幅降低了维护成本和开发成本,提高了开发效率。
附图说明
图1为一个实施例中资源缓存方法的应用环境图;
图2为一个实施例中资源缓存方法的流程示意图;
图3为一个实施例中资源缓存装置的结构框图;
图4为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的资源缓存方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。终端102通过网络发送第一加载请求至服务器104,服务器104可以返回对应的网页资源。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种资源缓存方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
步骤201,获取待加载网页的第一加载请求。
步骤202,获取第一加载请求中携带的加载网址。
步骤203,根据加载网址中携带的缓存参数对待加载网页的资源进行缓存,得到本地缓存资源。
步骤204,当获取到对待加载网页的第二加载请求时,对第二加载请求进行拦截。
步骤205,当查找到与第二加载请求对应的本地缓存资源时,阻止第二加载请求发送至服务器,返回本地缓存资源。
待加载网页是指待访问并请求获取数据的网页,待加载网页可以是内嵌在APP内的内嵌网页。第一加载请求是指第一次访问待加载网页所触发的网页加载请求,也可以是指待加载网页的网页资源未被缓存的状态下进入该待加载网页时,所触发的网页加载请求。而第二加载请求则指的是待加载网页的网页资源已经被缓存且资源处于缓存有效期内状态下进入该待加载网页时,所触发的网页加载请求。
终端上安装有特定APP,在特定的APP中有内嵌网页-待加载网页,用户可通过终端触发对待加载网页的第一加载请求。终端可以获取到第一加载请求中所携带的加载网址,加载网址是指待加载网页的URL,即资源获取链接,服务器在获取到第一加载请求后,可以根据第一加载请求中携带的加载网址返回对应的资源。
在加载网址中携带有缓存参数,在服务器返回了待加载网页所对应的网页资源后,终端可以根据加载网址中携带的缓存参数对待加载网页的资源进行缓存并保存到终端本地,即可得到本地缓存资源。缓存参数是预先定义的参数,终端可以根据缓存参数明确缓存操作。在终端上,也预先存储有缓存控制文件,在缓存控制文件中则包含有缓存参数,因此,终端可以根据缓存控制文件对加载网址中携带的缓存参数进行判断,以确定具体的资源缓存行为。
比如,假设缓存参数有两个,分别为offline_flag和offline_time参数。其中,offline_flag参数用于控制网页资源是否需要进行缓存,当offline_flag参数的值为0时,代表终端不需要做任何处理,即无需缓存网页资源;当offline_flag参数的值为1时,则表明终端需要对网页资源进行缓存操作。offline_time参数用于确定资源的缓存过期时间。可以将缓存过期时间设置为具体的过期日期,或者可以设置为相对于当前时间开始的时间间隔,并支持各种格式解析。比如,当offline_time参数的值为30d时,表示缓存的网页资源的缓存过期时间为30天,也就是说终端会将缓存下来的网页资源保存30天,若是在接下来的30天内,该网页资源都未被使用过,则终端可以对该网页资源进行清除或加入至回收站;offline_time参数的值为2h则表示缓存过期时间为2小时,若是offline_time参数的值没有日期标志位,则可以默认为单位为毫秒数。假设offline_time参数的值为8,则可以默认为缓存过期时间为8毫秒。对于可以永久缓存的资源,可以在设置offline_flag参数的基础上,不对offline_time参数的值进行设置,即可将该资源设置为永远缓存,即该资源不会出现缓存过期的情况。
在一个实施例中,上述方法还包括:屏蔽待加载网页的缓存机制;创建待加载网页的请求模块,在请求模块中包含有拦截模块;当待加载网页触发网页的加载请求时,对加载请求进行拦截。
由于待加载网页是一个内嵌网页,因此每次在打开待加载网页时,实际上是由内置的浏览器对待加载网页进行加载显示,而内置的浏览器则存在有自带的缓存机制。为了确保能够通过自定义的缓存机制对待加载网页的网页资源进行精准的缓存控制,因此可以忽略webview自身的缓存参数,并屏蔽内置浏览器的webview的默认缓存逻辑。在禁用webview的默认缓存支持功能的同时,需要重新创建待加载网页的请求模块,在请求模块中添加拦截功能的代码,从而当待加载网页触发了网页的加载请求后,终端可以对该网页的加载请求进行拦截。拦截后,加载请求是否会发送至服务器取决于重新创建的请求模块。重新创建的请求模块会根据本地是否存储有该待加载网页的资源来确定是否要发送加载请求至服务器获取数据,若是本地存储有该待加载网页的网页资源,无需再发送请求至服务器获取数据,而是可以直接获取到本地缓存资源并显示,若是未在本地查找到该待加载网页的网页资源,则可以将加载请求发送至服务器,通过服务器返回对应的网页资源。
在一个实施例中,根据加载网址中携带的缓存参数对待加载网页的资源进行缓存,得到本地缓存资源,包括:解析加载网址中携带的缓存参数;当缓存参数中包含有第一缓存参数时,判断第一缓存参数的格式是否符合标准;当第一缓存参数的格式符合标准时,根据第一缓存参数对待加载网页的资源进行缓存,得到本地缓存资源。
终端可以通过重新创建的请求模块对待加载网页的网页加载请求进行拦截,拦截后,可以获取到加载请求中携带的加载网址,从而可以解析出加载网址中携带的缓存参数。在终端上存储有缓存规则文件,终端可以根据缓存规则文件确定加载网址中是否携带有特定的缓存参数,缓存参数是否预先定义的格式。比如,预先定义了两个缓存参数offline_flag和offline_time,终端在获取到加载网址后,可以首先根据缓存规则文件检查加载网址中是否携带了这两个缓存参数中的任意一个或两个,然后再进一步检查携带的这两个参数的格式是否符合预先定义的格式标准。比如参数值的类型是否都是number(数字)等等。当终端确定加载网址中携带的缓存参数至少有这两个特定的缓存参数中的一个,且格式也符合预定义的标准时,可以根据缓存参数进行资源缓存。
具体的,第一缓存参数可以是指offline_flag参数,此参数代表网页资源是否需要进行缓存,若是待加载网页的加载网址中携带有offline_flag参数,且offline_flag参数的值符合标准,比如offline_flag参数的值为1,则说明该待加载网页的网页资源需要进行缓存,即可得到待加载网页的本地缓存资源。若是offline_flag参数的值为0,则说明终端无需对该待加载网页的网页资源进行缓存操作。缓存的时间期限则可以根据offline_time参数来确定。此处不再赘述。
进一步的,资源缓存的情况一般是在第一次访问待加载网页,或是,非第一次访问待加载网页,但之前在本地缓存的待加载网页的本地缓存资源已经被清除。因此,更为具体的说,当终端拦截了待加载网页的加载请求后,会先根据加载网址查找本地是否存储有对应的本地缓存资源,若是查找到了,则可以直接将本地资源进行返回显示;若是未查找到,则仍然发送网页的加载请求至服务器,并对服务器返回的网页资源进行缓存,将资源缓存至本地。同时,在获取到加载网址中携带的缓存参数后,可以检测加载网址中携带的缓存参数是否有本地的缓存规则文件中的参数值一致,若是有出入,可以根据加载网址中携带的缓存参数的值,更新缓存规则文件中的参数值。也就是说,假设终端本地存储的缓存规则文件中,针对待加载网页的加载网址A,offline_time的参数值为30d,而加载网址A中携带的offline_time的参数值为7d,则可以将终端本地存储的缓存规则文件中的offline_time的参数值更新为7d。也就是说,之前待加载网页的网页资源的缓存过期时间为30天,缓存规则更新后,缓存过期时间为7天。在计算本地缓存资源是否过期时,是根据当前时间加上offline_time的偏移量,算出一个绝对的过期日期来进行判断的。也就是说,当本地缓存资源重新被使用过时,是以最新被使用的时间加上offline_time的偏移量来重新确定该本地缓存资源的过期时间的。
在一个实施例中,在得到本地缓存资源之后,还包括:根据加载网址生成对应的缓存key;根据缓存key对本地缓存资源进行存储;获取缓存参数中包含的第二缓存参数,根据第二缓存参数确定本次缓存资源的过期时间。
在一个实施例中,当查找到与第二加载请求对应的本地缓存资源时,阻止第二加载请求发送至服务器,返回本地缓存资源,包括:查找是否缓存有加载网址对应的缓存key;若有,则获取加载网址对应的缓存key;根据缓存key的值查找到资源路径,根据资源路径获取对应的本地缓存资源。
在终端根据加载网址中携带的缓存参数对待加载网页的资源进行缓存后,还会根据预定义的规则对缓存的网页资源进行存储。首先,终端会获取到第一加载请求中携带的加载网址,并根据加载网址生成一个唯一的缓存key,可将该缓存key作为待加载网页的本地缓存资源的标识,且可以将本地缓存资源的存储路径作为缓存key的值。比如,可以创建一个资源缓存管理表格,在表格中包含有各个加载网址和对应的缓存key。当再一次访问待加载网页时,会触发第二加载请求,则终端可以对第二加载请求进行拦截,并查找本地是否有与第二加载请求中携带的加载网址所对应的缓存key,可以根据上述的资源缓存管理表格进行查找,可以先查找表格里是否有该加载网址,若是有,则可以再查找与之对应的缓存key,再根据缓存key的值查找到资源的存储路径,从而可以根据资源的存储路径获取到对应的本地缓存资源。
在一个实施例中,上述方法还包括:当对待加载网页的资源进行缓存时,通过预设算法根据待加载网页的资源内容进行命名,得到缓存得到的本地缓存资源的内容名称;根据本地缓存资源的内容生成唯一的哈希值;将内容名称与哈希值进行结合,得到本地缓存资源对应的缓存资源名称;当待加载网页的资源发生更新变化时,缓存更新后的待加载网页的资源内容,得到更新的本地缓存资源;根据更新的本地缓存资源的内容生成新的哈希值;将内容名称与新的哈希值进行结合,得到更新的本地缓存资源对应的缓存资源名称。
在对待加载网页的资源进行缓存时,可以根据自定义的命名规则对网页资源进行命名。具体的,首先可以通过预设算法,根据待加载网页的资源内容进行命名,在将网页资源缓存到本地后得到了对应的本地缓存资源,从而得到了本地缓存资源的内容名称然后可以根据本地缓存资源的内容生成唯一的哈希值,即根据待加载网页的资源内容生成唯一的哈希值,并且将内容名称与哈希值进行结合,从而得到了本地缓存资源的缓存资源名称,这个名称即为本地缓存资源存储在终端本地的名称。当待加载网页的资源发生更新变化时,可以先获取到更新后的内容,并再次对待加载网页的资源进行缓存,从而可以得到更新的本次缓存资源,同时可以根据更新的本地缓存资源的内容生成新的哈希值,再将内容名称与新的哈希值进行结合,可以得到更新后的本地缓存资源对应的缓存资源名称,。通常情况下,当待加载网页中包含的资源A发生更新变化时,资源A的对应的url也会随之更新,则终端加载资源A所在的网页时,可以检测到资源A的url发生了变化,则可以直接向服务器发起请求,在线获取该资源A的最新内容,而无需再去终端查看是否有资源A的本地缓存资源。也就是说,当资源A发生了更新时,资源A对应的url也会更新,那么终端可以直接对更新了的资源A进行缓存,缓存后,资源A存储在本地的资源名称也会更新,即更新了的资源A对应的资源名称会与之前缓存在本地的资源A的名称有所区别。比如两天前存储资源A的资源名称为login_md51.js,那么当资源A的内容发生了更新后,终端再次对资源A进行缓存,缓存后的资源A的资源名称会更新命名为login_md52.js。即,只要资源内容有变化,资源对应的url会发生变更,终端也会缓存变更后的资源,且资源名称也会更新,通过这种方式可以对本地缓存资源进行更新,本地缓存资源的名称也可以随之更新,以此可以解决出现了资源名称一致导致缓存更新不及时的问题。
在一个实施例中,获取离线缓存参数,离线缓存中包含有淘汰参数;当本地的存储空间达到预设阈值时,根据淘汰参数确定待淘汰的本次缓存资源;将待淘汰的本次缓存资源加入回收站;当在预设时长内获取到对待淘汰的本次缓存资源的加载请求时,将待淘汰的本次缓存资源移出回收站,并更新待淘汰的本次缓存资源的使用时间;当在预设时长内未获取到对待淘汰的本次缓存资源的加载请求时,清除预设时长内使用次数最少的待淘汰的本次缓存资源。
在终端存储的缓存规则文件中,包含有离线缓存参数,离线缓存参数中可以包含有淘汰参数。淘汰参数可以是预设的淘汰规则。淘汰规则通常根据存储空间对部分存储的本地缓存资源进行清除。当本地的存储空间达到预设阈值时,可以根据淘汰参数确定待淘汰的本次缓存资源,即可以根据淘汰规则确定哪些本次缓存资源是可以被淘汰清除的。一般情况下,可以选择最近最久未使用过的本地缓存资源进行淘汰。确定后,可以将待淘汰的本次缓存资源先加入至回收站,若是在预设时长内,有获取到对待淘汰的本次缓存资源的加载请求,即说明在预设时长内该待淘汰的本次缓存资源对应的网页有被加载过,则可以将该待淘汰的本次缓存资源移出回收站,同时更新该资源的使用时间。若是在预设时长内未获取到对待淘汰的本次缓存资源的加载请求,即说明在预设时长内该待淘汰的本次缓存资源对应的网页仍然未被加载过,则可以清楚该资源。可以清除掉预设时长内使用次数最少的待淘汰的本次缓存资源,即按照距离当前时间最近最久未被使用的顺序来进行资源清除,也就是通过LRU算法结合资源文件大小及时间周期来确定的一种淘汰规则。
在一个实施例中,技术人员可以通过配置表,为每一个待加载网页配置对应的加载网址及缓存参数。进一步的,技术人员可以通过配置表为每个类型的网页资源配置对应的缓存参数。比如,假设存在有png,jpg,js,css,html这5种类型的网页资源,可以通过配置表为每一个类型的网页资源配置统一的缓存参数。例如,可以为png类型的网页资源的缓存参数设置为offline_flag=1,offline_time=7d,即网页中涉及到png类型的资源的缓存参数均为需要缓存,且缓存过期时间为7天。若是某一个待加载网页中包含有多个类型的网页资源,那么针对不同类型的网页资源,每个网页资源的缓存参数都可能存在差异。假设待加载网页1中包含有png、jpg和html类型的资源,那么终端在缓存待加载网页1中的网页资源时,会根据png、jpg和html这三种不同资源类型各自对应的缓存参数,对其进行对应的缓存操作,终端也会根据这三种资源类型对应的缓存参数确定其缓存过期时间。进一步的,在配置每个待加载网页的缓存参数时,还可以配置每一个待加载网页的缓存内容。也就是说,终端在缓存待加载网页的网页资源时,可以不缓存整个网页的资源,而是缓存公共组件等资源,动态数据则仍然可以从服务器获取,以此可以降低网页资源的资源加载时间,提升网页加载速率,也大幅度的提升了用户体验。
上述资源缓存方法中,通过获取待加载网页的第一加载请求,获取第一加载请求中携带的加载网址,根据加载网址中携带的缓存参数对待加载网页的资源进行缓存,得到本地缓存资源,当获取到对待加载网页的第二加载请求时,对第二加载请求进行拦截,当查找到与第二加载请求对应的本地缓存资源时,阻止第二加载请求发送至服务器,返回本地缓存资源,通过这种资源缓存和加载的方式,可以大幅度的降低资源的加载时间,也很好的提升了用户体验,而对于开发者而言,这种精准控制资源进行缓存的方式,在新增了待加载网页后,也可以很方便迅速的接入新的网页,并对新接入的网页实现精准的资源缓存控制,也无需繁琐的额外处理,这种方式大幅降低了维护成本和开发成本,提高了开发效率。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图3所示,提供了一种资源缓存装置,包括:加载请求获取模块、资源缓存模块和缓存加载模块,其中:
加载请求获取模块301,用于获取待加载网页的第一加载请求;获取第一加载请求中携带的加载网址。
资源缓存模块302,用于根据加载网址中携带的缓存参数对待加载网页的资源进行缓存,得到本地缓存资源。
缓存加载模块303,用于当获取到对待加载网页的第二加载请求时,对第二加载请求进行拦截;当查找到与第二加载请求对应的本地缓存资源时,阻止第二加载请求发送至服务器,返回本地缓存资源。
在一个实施例中,资源缓存模块302还用于解析加载网址中携带的缓存参数;当缓存参数中包含有第一缓存参数时,判断第一缓存参数的格式是否符合标准;当第一缓存参数的格式符合标准时,根据第一缓存参数对待加载网页的资源进行缓存,得到本地缓存资源。
在一个实施例中,资源缓存模块302还用于根据加载网址生成对应的缓存key;根据缓存key对本地缓存资源进行存储;获取缓存参数中包含的第二缓存参数,根据第二缓存参数确定本次缓存资源的过期时间。
在一个实施例中,资源缓存模块302还用于屏蔽待加载网页的缓存机制;创建待加载网页的请求模块,在请求模块中包含有拦截模块;当待加载网页触发网页的加载请求时,对加载请求进行拦截。
在一个实施例中,缓存加载模块303还用于查找是否缓存有加载网址对应的缓存key;若有,则获取加载网址对应的缓存key;根据缓存key的值查找到资源路径,根据资源路径获取对应的本地缓存资源。
在一个实施例中,缓存加载模块303还用于当对待加载网页的资源进行缓存时,通过预设算法根据待加载网页的资源内容进行命名,得到缓存得到的本地缓存资源的内容名称;根据本地缓存资源的内容生成唯一的哈希值;将内容名称与哈希值进行结合,得到本地缓存资源对应的缓存资源名称;当待加载网页的资源发生更新变化时,缓存更新后的待加载网页的资源内容,得到更新的本地缓存资源;根据更新的本地缓存资源的内容生成新的哈希值;将内容名称与新的哈希值进行结合,得到更新的本地缓存资源对应的缓存资源名称。
在一个实施例中,缓存加载模块303还用于获取离线缓存参数,离线缓存中包含有淘汰参数;当本地的存储空间达到预设阈值时,根据淘汰参数确定待淘汰的本次缓存资源;将待淘汰的本次缓存资源加入回收站;当在预设时长内获取到对待淘汰的本次缓存资源的加载请求时,将待淘汰的本次缓存资源移出回收站,并更新待淘汰的本次缓存资源的使用时间;当在预设时长内未获取到对待淘汰的本次缓存资源的加载请求时,清除预设时长内使用次数最少的待淘汰的本次缓存资源。
关于资源缓存装置的具体限定可以参见上文中对于资源缓存方法的限定,在此不再赘述。上述资源缓存装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图4所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种资源缓存方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取待加载网页的第一加载请求;获取第一加载请求中携带的加载网址;根据加载网址中携带的缓存参数对待加载网页的资源进行缓存,得到本地缓存资源;当获取到对待加载网页的第二加载请求时,对第二加载请求进行拦截;当查找到与第二加载请求对应的本地缓存资源时,阻止第二加载请求发送至服务器,返回本地缓存资源。
在一个实施例中,根据加载网址中携带的缓存参数对待加载网页的资源进行缓存,得到本地缓存资源,包括:解析加载网址中携带的缓存参数;当缓存参数中包含有第一缓存参数时,判断第一缓存参数的格式是否符合标准;当第一缓存参数的格式符合标准时,根据第一缓存参数对待加载网页的资源进行缓存,得到本地缓存资源。
在一个实施例中,在得到本地缓存资源之后,处理器执行计算机程序时还实现以下步骤:根据加载网址生成对应的缓存key;根据缓存key对本地缓存资源进行存储;获取缓存参数中包含的第二缓存参数,根据第二缓存参数确定本次缓存资源的过期时间。
在一个实施例中,当查找到与第二加载请求对应的本地缓存资源时,阻止第二加载请求发送至服务器,返回本地缓存资源,包括:查找是否缓存有加载网址对应的缓存key;若有,则获取加载网址对应的缓存key;根据缓存key的值查找到资源路径,根据资源路径获取对应的本地缓存资源。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:创建待加载网页的请求模块,在请求模块中包含有拦截模块;当待加载网页触发网页的加载请求时,对加载请求进行拦截。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当对待加载网页的资源进行缓存时,通过预设算法根据待加载网页的资源内容进行命名,得到缓存得到的本地缓存资源的内容名称;根据本地缓存资源的内容生成唯一的哈希值;将内容名称与哈希值进行结合,得到本地缓存资源对应的缓存资源名称;当待加载网页的资源发生更新变化时,缓存更新后的待加载网页的资源内容,得到更新的本地缓存资源;根据更新的本地缓存资源的内容生成新的哈希值;将内容名称与新的哈希值进行结合,得到更新的本地缓存资源对应的缓存资源名称。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取离线缓存参数,离线缓存中包含有淘汰参数;当本地的存储空间达到预设阈值时,根据淘汰参数确定待淘汰的本次缓存资源;将待淘汰的本次缓存资源加入回收站;当在预设时长内获取到对待淘汰的本次缓存资源的加载请求时,将待淘汰的本次缓存资源移出回收站,并更新待淘汰的本次缓存资源的使用时间;当在预设时长内未获取到对待淘汰的本次缓存资源的加载请求时,清除预设时长内使用次数最少的待淘汰的本次缓存资源。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取待加载网页的第一加载请求;获取第一加载请求中携带的加载网址;根据加载网址中携带的缓存参数对待加载网页的资源进行缓存,得到本地缓存资源;当获取到对待加载网页的第二加载请求时,对第二加载请求进行拦截;当查找到与第二加载请求对应的本地缓存资源时,阻止第二加载请求发送至服务器,返回本地缓存资源。
在一个实施例中,根据加载网址中携带的缓存参数对待加载网页的资源进行缓存,得到本地缓存资源,包括:解析加载网址中携带的缓存参数;当缓存参数中包含有第一缓存参数时,判断第一缓存参数的格式是否符合标准;当第一缓存参数的格式符合标准时,根据第一缓存参数对待加载网页的资源进行缓存,得到本地缓存资源。
在一个实施例中,在得到本地缓存资源之后,计算机程序被处理器执行时还实现以下步骤:根据加载网址生成对应的缓存key;根据缓存key对本地缓存资源进行存储;获取缓存参数中包含的第二缓存参数,根据第二缓存参数确定本次缓存资源的过期时间。
在一个实施例中,当查找到与第二加载请求对应的本地缓存资源时,阻止第二加载请求发送至服务器,返回本地缓存资源,包括:查找是否缓存有加载网址对应的缓存key;若有,则获取加载网址对应的缓存key;根据缓存key的值查找到资源路径,根据资源路径获取对应的本地缓存资源。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:屏蔽待加载网页的缓存机制;创建待加载网页的请求模块,在请求模块中包含有拦截模块;当待加载网页触发网页的加载请求时,对加载请求进行拦截。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当对待加载网页的资源进行缓存时,通过预设算法根据待加载网页的资源内容进行命名,得到缓存得到的本地缓存资源的内容名称;根据本地缓存资源的内容生成唯一的哈希值;将内容名称与哈希值进行结合,得到本地缓存资源对应的缓存资源名称;当待加载网页的资源发生更新变化时,缓存更新后的待加载网页的资源内容,得到更新的本地缓存资源;根据更新的本地缓存资源的内容生成新的哈希值;将内容名称与新的哈希值进行结合,得到更新的本地缓存资源对应的缓存资源名称。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取离线缓存参数,离线缓存中包含有淘汰参数;当本地的存储空间达到预设阈值时,根据淘汰参数确定待淘汰的本次缓存资源;将待淘汰的本次缓存资源加入回收站;当在预设时长内获取到对待淘汰的本次缓存资源的加载请求时,将待淘汰的本次缓存资源移出回收站,并更新待淘汰的本次缓存资源的使用时间;当在预设时长内未获取到对待淘汰的本次缓存资源的加载请求时,清除预设时长内使用次数最少的待淘汰的本次缓存资源。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种资源缓存方法,所述方法包括:
获取待加载网页的第一加载请求;
获取所述第一加载请求中携带的加载网址;
根据所述加载网址中携带的缓存参数对所述待加载网页的资源进行缓存,得到本地缓存资源;
当获取到对所述待加载网页的第二加载请求时,对所述第二加载请求进行拦截;
当查找到与所述第二加载请求对应的所述本地缓存资源时,阻止所述第二加载请求发送至服务器,返回所述本地缓存资源。
2.根据权利要求1所述的方法,其特征在于,所述根据所述加载网址中携带的缓存参数对所述待加载网页的资源进行缓存,得到本地缓存资源,包括:
解析所述加载网址中携带的缓存参数;
当所述缓存参数中包含有第一缓存参数时,判断所述第一缓存参数的格式是否符合标准;
当所述第一缓存参数的格式符合标准时,根据所述第一缓存参数对所述待加载网页的资源进行缓存,得到本地缓存资源。
3.根据权利要求2所述的方法,其特征在于,在所述得到本地缓存资源之后,还包括:
根据所述加载网址生成对应的缓存key;
根据所述缓存key对所述本地缓存资源进行存储;
获取所述缓存参数中包含的第二缓存参数,根据所述第二缓存参数确定所述本次缓存资源的过期时间。
4.根据权利要求3所述的方法,其特征在于,所述当查找到与所述第二加载请求对应的所述本地缓存资源时,阻止所述第二加载请求发送至服务器,返回所述本地缓存资源,包括:
查找是否缓存有所述加载网址对应的缓存key;
若有,则获取所述加载网址对应的缓存key;
根据所述缓存key的值查找到资源路径,根据所述资源路径获取对应的本地缓存资源。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
屏蔽所述待加载网页的缓存机制;
创建所述待加载网页的请求模块,在所述请求模块中包含有拦截模块;
当所述待加载网页触发网页的加载请求时,对所述加载请求进行拦截。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当对所述待加载网页的资源进行缓存时,通过预设算法根据所述待加载网页的资源内容进行命名,得到缓存得到的所述本地缓存资源的内容名称;
根据所述本地缓存资源的内容生成唯一的哈希值;
将所述内容名称与所述哈希值进行结合,得到所述本地缓存资源对应的缓存资源名称;
当所述待加载网页的资源发生更新变化时,缓存更新后的待加载网页的资源内容,得到更新的本地缓存资源;
根据更新的本地缓存资源的内容生成新的哈希值;
将所述内容名称与所述新的哈希值进行结合,得到更新的本地缓存资源对应的缓存资源名称。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取离线缓存参数,所述离线缓存中包含有淘汰参数;
当本地的存储空间达到预设阈值时,根据所述淘汰参数确定待淘汰的本次缓存资源;
将所述待淘汰的本次缓存资源加入回收站;
当在预设时长内获取到对所述待淘汰的本次缓存资源的加载请求时,将所述待淘汰的本次缓存资源移出回收站,并更新所述待淘汰的本次缓存资源的使用时间;
当在预设时长内未获取到对所述待淘汰的本次缓存资源的加载请求时,清除预设时长内使用次数最少的待淘汰的本次缓存资源。
8.一种资源缓存装置,其特征在于,所述装置包括:
加载请求获取模块,用于获取待加载网页的第一加载请求;获取所述第一加载请求中携带的加载网址;
资源缓存模块,用于根据所述加载网址中携带的缓存参数对所述待加载网页的资源进行缓存,得到本地缓存资源;
缓存加载模块,用于当获取到对所述待加载网页的第二加载请求时,对所述第二加载请求进行拦截;当查找到与所述第二加载请求对应的所述本地缓存资源时,阻止所述第二加载请求发送至服务器,返回所述本地缓存资源。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910841446.XA CN110555184A (zh) | 2019-09-06 | 2019-09-06 | 资源缓存方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910841446.XA CN110555184A (zh) | 2019-09-06 | 2019-09-06 | 资源缓存方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110555184A true CN110555184A (zh) | 2019-12-10 |
Family
ID=68739356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910841446.XA Pending CN110555184A (zh) | 2019-09-06 | 2019-09-06 | 资源缓存方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110555184A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111898054A (zh) * | 2020-08-07 | 2020-11-06 | 湖南快乐阳光互动娱乐传媒有限公司 | 反向缓存控制方法及***、服务端、客户端和业务端 |
CN113312572A (zh) * | 2021-05-17 | 2021-08-27 | 深圳市中科明望通信软件有限公司 | 一种资源处理方法、装置、存储介质及电子设备 |
TWI790913B (zh) * | 2022-02-08 | 2023-01-21 | 宏碁股份有限公司 | 網頁存取系統及網頁存取方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7237002B1 (en) * | 2000-01-04 | 2007-06-26 | International Business Machines Corporation | System and method for dynamic browser management of web site |
CN102096712A (zh) * | 2011-01-28 | 2011-06-15 | 深圳市五巨科技有限公司 | 一种移动终端缓存控制的方法和装置 |
CN102929599A (zh) * | 2012-09-26 | 2013-02-13 | 广州市动景计算机科技有限公司 | 移动终端浏览器界面的修改方法及装置、移动终端 |
WO2013113150A1 (zh) * | 2012-01-31 | 2013-08-08 | 华为技术有限公司 | 缓存优化的方法、缓存器和缓存优化的*** |
CN105068806A (zh) * | 2015-08-07 | 2015-11-18 | 北京思特奇信息技术股份有限公司 | 一种浏览器缓存控制方法及*** |
CN107145490A (zh) * | 2016-03-01 | 2017-09-08 | 腾讯科技(深圳)有限公司 | 网页加载展示方法及网页加载展示装置 |
CN108228818A (zh) * | 2017-12-29 | 2018-06-29 | 网易(杭州)网络有限公司 | 网页资源加载方法及装置、电子设备、以及存储介质 |
CN109725976A (zh) * | 2018-12-29 | 2019-05-07 | 努比亚技术有限公司 | 一种显示界面刷新方法、移动终端及存储介质 |
-
2019
- 2019-09-06 CN CN201910841446.XA patent/CN110555184A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7237002B1 (en) * | 2000-01-04 | 2007-06-26 | International Business Machines Corporation | System and method for dynamic browser management of web site |
CN102096712A (zh) * | 2011-01-28 | 2011-06-15 | 深圳市五巨科技有限公司 | 一种移动终端缓存控制的方法和装置 |
WO2013113150A1 (zh) * | 2012-01-31 | 2013-08-08 | 华为技术有限公司 | 缓存优化的方法、缓存器和缓存优化的*** |
CN102929599A (zh) * | 2012-09-26 | 2013-02-13 | 广州市动景计算机科技有限公司 | 移动终端浏览器界面的修改方法及装置、移动终端 |
CN105068806A (zh) * | 2015-08-07 | 2015-11-18 | 北京思特奇信息技术股份有限公司 | 一种浏览器缓存控制方法及*** |
CN107145490A (zh) * | 2016-03-01 | 2017-09-08 | 腾讯科技(深圳)有限公司 | 网页加载展示方法及网页加载展示装置 |
CN108228818A (zh) * | 2017-12-29 | 2018-06-29 | 网易(杭州)网络有限公司 | 网页资源加载方法及装置、电子设备、以及存储介质 |
CN109725976A (zh) * | 2018-12-29 | 2019-05-07 | 努比亚技术有限公司 | 一种显示界面刷新方法、移动终端及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111898054A (zh) * | 2020-08-07 | 2020-11-06 | 湖南快乐阳光互动娱乐传媒有限公司 | 反向缓存控制方法及***、服务端、客户端和业务端 |
CN113312572A (zh) * | 2021-05-17 | 2021-08-27 | 深圳市中科明望通信软件有限公司 | 一种资源处理方法、装置、存储介质及电子设备 |
TWI790913B (zh) * | 2022-02-08 | 2023-01-21 | 宏碁股份有限公司 | 網頁存取系統及網頁存取方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9929895B2 (en) | Unique identifiers for browsers | |
CN108829485B (zh) | 应用界面布局的更新方法、装置、存储介质及计算机设备 | |
CN110555184A (zh) | 资源缓存方法、装置、计算机设备和存储介质 | |
CN112114913B (zh) | 应用程序的界面更新方法、装置、计算机设备和存储介质 | |
US9471704B2 (en) | Shared script files in multi-tab browser | |
CN110647320A (zh) | 项目框架的构建方法、装置、计算机设备和存储介质 | |
CN107515865B (zh) | 页面数据点击量统计方法及装置 | |
US20170300459A1 (en) | Card-type desktop implementation method and apparatus | |
CN108920703B (zh) | 一种http缓存优化方法与装置 | |
CN111079048B (zh) | 一种页面加载方法及装置 | |
CN109413153B (zh) | 数据爬取方法、装置、计算机设备和存储介质 | |
CN111191158A (zh) | 网页资源缓存方法、装置、计算机设备和存储介质 | |
CN110659092A (zh) | 网页截图方法、装置、计算机设备和存储介质 | |
CN112612546A (zh) | 页面加载方法、装置、电子设备和存储介质 | |
CN113392358A (zh) | 静态资源的预加载方法及装置 | |
CN113590665B (zh) | 缓存监控管理方法、装置、***、设备和存储介质 | |
CN113535587B (zh) | 目标应用检测方法、装置及计算机设备 | |
US9213673B2 (en) | Networked applications with client-caching of executable modules | |
CN112380468A (zh) | 一种页面加载方法、计算机设备和存储介质 | |
CN112433784A (zh) | 页面加载方法、装置、设备和存储介质 | |
CN112905920A (zh) | 一种页面显示的方法和装置 | |
CN113934954A (zh) | 应用程序中的网页首屏渲染方法及装置 | |
CN111756744B (zh) | H5用户的识别方法、装置、设备及存储介质 | |
CN111078257B (zh) | 一种h5应用包的加载方法及相关装置 | |
CN108900563B (zh) | 数据的发送方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191210 |
|
RJ01 | Rejection of invention patent application after publication |