脚本缓存清除方法、装置、电子设备及存储介质与流程

文档序号:13164419阅读:327来源:国知局
脚本缓存清除方法、装置、电子设备及存储介质与流程

本发明涉及计算机技术领域,以及互联网技术领域,尤其涉及一种脚本缓存清除方法、装置、电子设备及存储介质。



背景技术:

随着互联网技术的发展,网站推送给用户的网页,正在向越来越复杂、以及多样化的趋势发展。而这些酷炫的界面以及功能,大多是基于前端javascript(一种直译式脚本语言)开发的。但是网页的复杂也会带来前端javascript脚本体积的变大。为了尽可能加快网页的加载,大多数网站都会设置前端javascript等静态资源的缓存。但是加了缓存就会产生另外一个问题,即何时才能使缓存失效。

对于开启了强缓存的脚本,想让其缓存失效,只能通过更换脚本的地址。而对于一些公共组件脚本而言,更换脚本地址并不是一个好办法。因此需要一套脚本的自更新技术来实现缓存的有效清除。



技术实现要素:

本发明实施例提供一种脚本缓存清除方法、装置、电子设备及存储介质,用以解决现有技术中存在的无法有效清除脚本缓存的问题。

本发明实施例提供一种脚本缓存清除方法,包括:

在加载网页成功后,获取所述网页使用的指定脚本的脚本名称;

基于所述脚本名称,向服务器请求所述脚本名称表示的脚本的最新摘要值;

接收所述服务器返回的所述最新摘要值;

当所述最新摘要值与本地缓存的所述指定脚本的当前摘要值不同时,清除所述指定脚本的缓存数据。

进一步的,基于所述脚本名称,向服务器请求所述脚本名称表示的脚本的最新摘要值,包括:

基于所述脚本名称,向服务器请求更新文件;

通过加载所述服务器返回的所述更新文件,向服务器请求所述脚本名称表示的脚本的最新摘要值。

进一步的,在基于所述脚本名称,向服务器请求更新文件之前,还包括:

获取所述指定脚本的当前摘要值;

基于所述脚本名称,向服务器请求更新文件,包括:

基于所述脚本名称和所述当前摘要值,生成用于请求更新文件的第一统一资源定位符url;

使用所述第一url,向服务器请求更新文件。

进一步的,清除所述指定脚本的缓存数据,包括:

通过使用ajax技术向服务器强制请求更新后的所述指定脚本,清除所述指定脚本的缓存数据。

进一步的,在获取所述网页使用的指定脚本的脚本名称之前,还包括:

获取所述网页使用的指定脚本的第二url;

当所述第二url位于预设的域名白名单中时,执行所述获取所述网页使用的指定脚本的脚本名称的步骤。

本发明实施例还提供一种脚本缓存清除装置,包括:

名称获取模块,用于在加载网页成功后,获取所述网页使用的指定脚本的脚本名称;

摘要值请求模块,用于基于所述脚本名称,向服务器请求所述脚本名称表示的脚本的最新摘要值;

接收模块,用于接收所述服务器返回的所述最新摘要值;

清除模块,用于当所述最新摘要值与本地缓存的所述指定脚本的当前摘要值不同时,清除所述指定脚本的缓存数据。

进一步的,所述摘要值请求模块,具体用于基于所述脚本名称,向服务器请求更新文件;以及通过加载所述服务器返回的所述更新文件,向服务器请求所述脚本名称表示的脚本的最新摘要值。

进一步的,所述摘要值请求模块,还用于在基于所述脚本名称,向服务器请求更新文件之前,获取所述指定脚本的当前摘要值;并具体用于基于所述脚本名称和所述当前摘要值,生成用于请求更新文件的第一统一资源定位符url;以及使用所述第一url,向服务器请求更新文件。

进一步的,所述清除模块,具体用于通过使用ajax技术向服务器强制请求更新后的所述指定脚本,清除所述指定脚本的缓存数据。

进一步的,上述装置,还包括:

url判定模块,用于在所述名称获取模块获取所述网页使用的指定脚本的脚本名称之前,获取所述网页使用的指定脚本的第二url;并当所述第二url位于预设的域名白名单中时,触发所述名称获取模块执行所述获取所述网页使用的指定脚本的脚本名称的步骤。

本发明实施例还提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一脚本缓存清除方法的步骤。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一脚本缓存清除方法的步骤。

本发明有益效果包括:

本发明实施例提供的方法中,在加载网页成功后,获取网页使用的指定脚本的脚本名称,基于脚本名称,向服务器请求该脚本名称表示的脚本的最新摘要值,接收服务器返回的该最新摘要值,当该最新摘要值与本地缓存的该指定脚本的当前摘要值不同时,清除该指定脚本的缓存数据。从而实现了对脚本缓存的有效清除。

本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明实施例提供的脚本缓存清除方法的流程图之一;

图2为本发明实施例提供的脚本缓存清除方法的流程图之二;

图3为本发明实施例提供的脚本缓存清除装置的结构示意图;

图4为本发明实施例提供的电子设备的结构示意图。

具体实施方式

为了给出对脚本缓存有效清除的实现方案,本发明实施例提供了一种脚本缓存清除方法、装置、电子设备及存储介质,以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

本发明实施例提供一种脚本缓存清除方法,如图1所示,包括:

步骤11、在加载网页成功后,获取该网页使用的指定脚本的脚本名称。

步骤12、基于该脚本名称,向服务器请求该脚本名称表示的脚本的最新摘要值。

步骤13、接收服务器返回的最新摘要值。

步骤14、当最新摘要值与本地缓存的该指定脚本的当前摘要值不同时,清除该指定脚本的缓存数据。

采用本发明实施例提供的上述脚本缓存清除方法,可以基于本地缓存的脚本与服务器侧脚本的摘要值是否相同,确定是否存在更新的脚本,当存在时,则可以清除该脚本在本地的缓存数据,从而实现了脚本缓存的有效清除。

下面结合附图,用具体实施例对本发明提供的方法及装置进行详细描述。

图2为本发明实施例提供一种脚本缓存清除方法,具体包括如下处理步骤:

步骤21、在访问的网页加载成功之后,获取该网页使用的指定脚本的url(统一资源定位符,uniformresourcelocator)。

本步骤中,在使用浏览器访问网站的过程中,且在向网站的服务器请求访问的网页加载成功之后,即可以执行该网页的指定脚本的自更新逻辑,首先,即获取该指定脚本在该网页的url,例如,可以为http://script.com/test.js。

为便于区分,可以将本步骤中获取的指定脚本的url称作第二url。

步骤22、判断该指定脚本在该网页的url,是否位于预设的域名白名单中,如果位于,执行步骤23,否则,结束自更新逻辑。

步骤23、获取该指定脚本的脚本名称。

具体的,可以从该指定脚本的脚本文件内容中,获取该指定脚本的脚本名称。

本步骤中获取的脚本名称,用于后续向服务器请求该脚本名称表示的脚本的最新摘要值,本发明实施例中,为了完成最新摘要值的获取,进一步的,还可以包括如下步骤24,

步骤24、获取该指定脚本的当前摘要值。

脚本的摘要值是与脚本文件内容相关的,脚本文件内容不同,则摘要值不同,本步骤中,可以基于该指定脚本的脚本文件内容,获取该指定脚本的当前摘要值。

步骤25、基于获取的脚本名称,向服务器请求更新文件,也可以基于获取的脚本名称和当前摘要值,向服务器请求更新文件。该更新文件后续将用于向服务器请求该脚本名称表示的脚本的最新摘要值。

具体的,可以使用获取的脚本名称和当前摘要值,创建一个隐形的iframe(指html标签,作用是文档中的文档,或者浮动的框架),通过创建的iframe,向服务器请求更新文件updater.html。

进一步的,可以基于获取的脚本名称和当前摘要值,拼接生成用于请求更新文件updater.html的url,例如,http://script.com/updater.html,通过访问该url,从服务器获得该更新文件,并在本地加载该更新文件。

为便于区分上述指定脚本的url,本步骤中生成的用于请求更新文件的url可以称作第一url。

步骤26、通过加载该更新文件,向服务器请求该脚本名称表示的脚本的最新摘要值。

具体的,可以在加载该更新文件后,通过加载的该更新文件的内部处理逻辑,使用该指定脚本传入的该脚本名称,向服务器请求该脚本名称表示的脚本的最新摘要值。

例如,可以通过请求http://script.com/test.js.hash.js文件获取得到该最新摘要值。

步骤27、判断获取的该最新摘要值与本地缓存的该指定脚本的当前摘要值是否相同,如果相同,表示存在更新的脚本,进入步骤28,如果不同,表示不存在更新的脚本,结束自更新逻辑。

由于脚本的摘要值与脚本文件内容相关,不同版本的脚本文件内容不同,所以,不同版本的脚本的摘要值也不同。

步骤28、清除该指定脚本的缓存数据。

本步骤中,具体可以通过使用ajax技术向服务器强制请求更新后的所述指定脚本,清除该指定脚本的缓存数据。

使用ajax技术向服务器强制请求更新后的指定脚本,即避免了从缓存中获取该指定脚本,而是向服务器请求,并且,使用ajax技术,是异步获取服务端的数据,不会阻塞前台动作。

使用ajax技术向服务器强制请求到更新后的指定脚本后,将使用更新后的指定脚本,替换缓存的原指定脚本,即在完成了清楚原指定脚本的缓存数据的同时,完成了指定脚本的更新。

当浏览器再次访问该页面时,所使用的该指定脚本则为更新后的版本。

采用本发明实施例提供的上述图2所示的脚本缓存清除方法,为了让脚本具备自更新功能,在编写完成脚本之后,可以将脚本的自更新逻辑加入到脚本中,生成脚本文件,进一步的,还可以编译生成该脚本对应的更新文件updater.html,以及保存脚本的摘要值的摘要文件,该脚本文件、更新文件、摘要文件,均可以预先保存在服务器的预设路径中,以便浏览器在获得脚本文件之后,通过脚本中的自更新逻辑,从服务器端获取对应的更新文件,通过加载的该更新文件的内部处理逻辑,从服务器端获取保存有摘要值的摘要文件,并从中获取摘要值,以便通过摘要值的比对,确定脚本是否存在更新,进而当存在更新时,在获取更新后的脚本的同时,清除本地缓存的脚本文件,即脚本的缓存数据。

基于同一发明构思,根据本发明上述实施例提供的脚本缓存清除方法,相应地,本发明另一实施例还提供了脚本缓存清除装置,其结构示意图如图3所示,具体包括:

名称获取模块31,用于在加载网页成功后,获取所述网页使用的指定脚本的脚本名称;

摘要值请求模块32,用于基于所述脚本名称,向服务器请求所述脚本名称表示的脚本的最新摘要值;

接收模块33,用于接收所述服务器返回的所述最新摘要值;

清除模块34,用于当所述最新摘要值与本地缓存的所述指定脚本的当前摘要值不同时,清除所述指定脚本的缓存数据。

进一步的,摘要值请求模块32,具体用于基于所述脚本名称,向服务器请求更新文件;以及通过加载所述服务器返回的所述更新文件,向服务器请求所述脚本名称表示的脚本的最新摘要值。

进一步的,摘要值请求模块32,还用于在基于所述脚本名称,向服务器请求更新文件之前,获取所述指定脚本的当前摘要值;并具体用于基于所述脚本名称和所述当前摘要值,生成用于请求更新文件的第一统一资源定位符url;以及使用所述第一url,向服务器请求更新文件。

进一步的,清除模块34,具体用于通过使用ajax技术向服务器强制请求更新后的所述指定脚本,清除所述指定脚本的缓存数据。

进一步的,上述装置,还包括:

url判定模块35,用于在所述名称获取模块31获取所述网页使用的指定脚本的脚本名称之前,获取所述网页使用的指定脚本的第二url;并当所述第二url位于预设的域名白名单中时,触发所述名称获取模块31执行所述获取所述网页使用的指定脚本的脚本名称的步骤。

上述各模块的功能可对应于图1或图2所示流程中的相应处理步骤,在此不再赘述。

基于同一发明构思,根据本发明上述实施例提供的脚本缓存清除方法,相应地,本发明另一实施例还提供了一种电子设备,其结构示意图如图4所示,具体包括:处理器41、通信接口42、存储器43和通信总线44,其中,处理器41,通信接口42,存储器43通过通信总线44完成相互间的通信;

存储器43,用于存放计算机程序;

处理器41,用于执行存储器43上所存放的程序时,实现上述任一脚本缓存清除方法的步骤。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

基于同一发明构思,根据本发明上述实施例提供的脚本缓存清除方法,相应地,本发明另一实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一脚本缓存清除方法的步骤。

综上所述,本发明实施例提供的方案中,在加载网页成功后,获取网页使用的指定脚本的脚本名称,基于脚本名称,向服务器请求该脚本名称表示的脚本的最新摘要值,接收服务器返回的该最新摘要值,当该最新摘要值与本地缓存的该指定脚本的当前摘要值不同时,清除该指定脚本的缓存数据。从而实现了对脚本缓存的有效清除。

本申请的实施例所提供的清除装置可通过计算机程序实现。本领域技术人员应该能够理解,上述的模块划分方式仅是众多模块划分方式中的一种,如果划分为其他模块或不划分模块,只要清除装置具有上述功能,都应该在本申请的保护范围之内。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1