CN116244538B - 基于serviceworker的文件缓存方法和加载方法 - Google Patents
基于serviceworker的文件缓存方法和加载方法 Download PDFInfo
- Publication number
- CN116244538B CN116244538B CN202310046504.6A CN202310046504A CN116244538B CN 116244538 B CN116244538 B CN 116244538B CN 202310046504 A CN202310046504 A CN 202310046504A CN 116244538 B CN116244538 B CN 116244538B
- Authority
- CN
- China
- Prior art keywords
- file
- group
- serviceworker
- current
- web program
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000011068 loading method Methods 0.000 title claims description 15
- 238000007781 pre-processing Methods 0.000 claims description 20
- 230000003993 interaction Effects 0.000 claims description 5
- 230000003139 buffering effect Effects 0.000 description 8
- 239000000872 buffer Substances 0.000 description 7
- 238000007689 inspection Methods 0.000 description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 230000000694 effects 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/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/168—Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于serviceworker的文件缓存方法,包括:web程序接收当前文件组访问请求并解析,以获取当前文件组访问请求中包含的当前被访问文件组的组ID;web程序于localstorage中对当前被访问文件组的组ID进行检索,若localstorage中不存在当前被访问文件组的组ID,则web程序将当前被访问文件组的组ID加入localstorage中,并通知serviceworker将与当前被访问文件组的组ID匹配的一组文件数据下载存入缓存数据库中;其中,缓存过程中web程序于页面显示并更新该组文件的缓存进度。本发明实现文件的按需缓存,缓存的文件位置也能突破serviceworker本身的限制,并且缓存过程有进度显示,用户体验更好。
Description
技术领域
本发明涉及计算机技术领域。更具体地说,本发明涉及一种基于serviceworker的文件缓存方法和加载方法。
背景技术
通常来说,一次影像设备(包括CT、MRI、PET/CT等)扫描产生的所有影像文件统称为一个检查(本专利中称之为一组文件),这一个检查包含的所有影像文件一般从几百个到几千个不等。目前,在采用web方式调阅DICOM的影像文件时,需要提前将当前调阅所涉及的所有影像文件先全部下载到浏览器所在的个人终端,从而在后续访问时可以快速的在本地浏览器缓存中调取,无需再从网络服务器下载。
一般情况下,浏览器的缓存机制有3种,分别为http缓存、appcache缓存和serviceworker缓存。http缓存是指通过http header指定让浏览器将加载文件缓存于浏览器缓存空间中,但是这种方式的缓存效果(是否缓存,缓存多少和大小)不可控,且必须要在浏览器的UI线程中通过图像加载/Ajax/Fetch等API手动发出请求;appcache缓存目前不被最新的浏览器支持;原始的serviceworker缓存也存在一些问题和限制,如:serviceworker中的Cache.addAll()接口提供了让后台同时加载多个文件的能力,但是只提供影像文件完全加载后的调阅,无法提供更细化的加载进度提示;serviceworker中的fetch event拦截的请求范围有限,当影像文件的访问路径和web程序的访问路径不相同时,fetch event无法拦截请求。
发明内容
本发明的一个目的是提供一种基于serviceworker的文件缓存方法和加载方法,以实现文件的按需缓存,并且缓存过程有进度显示,用户体验更好。
为了实现根据本发明的这些目的和其它优点,提供了一种基于serviceworker的文件缓存方法,其包括:
web程序接收当前文件组访问请求并解析,以获取当前文件组访问请求中包含的当前被访问文件组的组ID,所述组ID为web程序预先对由相互关联的一组文件形成的文件组赋予的唯一编号;
web程序于localstorage中对当前被访问文件组的组ID进行检索,localstorage中保存有历史被访问文件组的组ID,若localstorage中不存在当前被访问文件组的组ID,则web程序将当前被访问文件组的组ID加入localstorage中,并通知serviceworker将与当前被访问文件组的组ID匹配的一组文件数据下载存入缓存数据库中,缓存数据库中保存有与历史被访问文件组的组ID匹配的文件数据,若localstorage中存在当前被访问文件组的组ID,则web程序不予处理;
其中,web程序通知serviceworker缓存与当前被访问文件组的组ID匹配的一组文件数据前,先将该组文件中每一文件的URL进行预处理,web程序再将该组文件分为若干单元,每次将一个单元包含的各个文件经预处理后的URL发送给serviceworker,以使serviceworker基于该单元包含的文件经预处理后的URL缓存该单元包含的文件的文件数据,并在该单元包含的文件的文件数据缓存完成后,给web程序反馈单元数据缓存完成信息,web程序再基于该单元数据缓存完成信息于页面显示并更新该组文件的缓存进度。
优选的是,若localstorage中不存在当前被访问文件组的组ID,则web程序根据预设的localstorage中组ID存储上限判断是否需要清除历史被访问文件组的组ID,若需要,则当web程序清除localstorage中历史被访问文件组的组ID后再将当前被访问文件组的组ID加入localstorage中,serviceworker同时清除缓存数据库中与当前localstorage中保存的组ID不匹配的文件数据。
优选的是,每一单元缓存完成后,serviceworker向web程序反馈单元数据缓存完成信息,web程序于页面显示并更新缓存进度,在serviceworker与web程序交互期间,serviceworker维持同组文件数据中其他单元包含的文件的文件数据的缓存操作。
优选的是,serviceworker基于该单元包含的文件经预处理后的URL缓存该单元包含的文件的文件数据时,将文件经预处理后的URL作为文件的key。
优选的是,web程序将与当前被访问文件组的组ID匹配的一组文件数据中每一文件的URL进行预处理的方法包括:将与当前被访问文件组的组ID匹配的一组文件数据中每一文件的访问路径后追加上该文件组的组ID。
本发明还提供一种基于serviceworker的文件加载方法,其包括:
应用上述的文件缓存方法缓存与当前被访问文件组的组ID匹配的一组文件数据;
web程序获取当前被访问文件组中任一文件的当前文件访问请求,并对当前文件访问请求的URL进行预处理再通过fetch API发出,以使当前文件访问请求被serviceworker拦截,进而serviceworker对URL经过预处理后的当前文件访问请求进行解析,获得当前被访问文件的key,根据当前被访问文件的key于缓存数据库中提取当前文件访问请求需求的文件数据;
web程序接收serviceworker发送的当前文件访问请求需求的文件数据并显示。
优选的是,web程序对当前文件访问请求的URL进行预处理的方法包括:
将serviceworker的拦截路径作为URL前缀,所述serviceworker的拦截路径为web程序的访问路径;
将当前被访问文件的组ID追加到被访问文件的访问路径上,再进行加密,然后附于所述URL前缀后;
加上第一特殊标识作为URL后缀,所述第一特殊标识用于使serviceworker识别当前文件访问请求的URL为需要拦截的对象。
优选的是,若当web程序响应于当前文件访问请求时,还接收到其他文件访问请求,所述其他文件访问请求包含的被访问文件的组ID与当前文件访问请求包含的被访问文件的组ID不同,对于其他文件访问请求,web程序采用与当前文件访问请求的URL预处理相同的方法给予其他文件访问请求的URL以预处理,再追加第二特殊标识,所述第二特殊标识用于在缓存数据库中未保存与其他文件访问请求需求的文件数据时,使serviceworker解析其拦截的经预处理的其他文件访问请求的URL,获得其他被访问文件的访问路径和组ID后,仅下载其他被访问文件的文件数据并发送给web程序而不存入缓存数据库中。
本发明至少包括以下有益效果:1、实现文件的按需缓存,并且缓存过程有进度显示,用户体验更好;2、当文件的访问路径和web程序的访问路径不相同时,serviceworker仍然可以拦截文件访求请求。
本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。
附图说明
图1为本发明实施例所述基于serviceworker的文件缓存方法的流程图;
图2为本发明实施例所述基于serviceworker的文件加载方法的流程图;
图3为本发明实施例所述web程序对当前文件访问请求的URL进行预处理的方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下对发明实施例中涉及的部分词语进行说明,以便于本领域技术人员理解。
web程序:是一种可以通过web访问的应用程序,程序最大的好处就是用户很容易访问,用户只需要浏览器即可,不需要再安装其他软件,是典型的浏览器/服务器构架的产物;
serviceworker:相当于服务器与浏览器之间的中间人角色,如果网站中注册了serviceworker,那么它可以拦截网站的请求,进行判断(需要编写相应的判断程序),如果需要向服务器发起请求的就转给服务器,如果可以直接使用缓存的就直接返回缓存不再转给服务器,从而大大提高浏览体验;
localstorage:是一种web端的存储机制,它使得由JavaScript编写的网站或者应用可以长期的在浏览器中存储并访问数据;
URL:即统一资源定位符,是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。
参见图1,本发明实施例提供了一种基于serviceworker的文件缓存方法,其包括:
S101、web程序接收当前文件组访问请求并解析,以获取当前文件组访问请求中包含的当前被访问文件组的组ID,所述组ID为web程序预先对由相互关联的一组文件形成的文件组赋予的唯一编号;
本步骤中,web程序接收的当前文件组访问请求一般是由用户向web程序中键入想访问文件组的URL,在此之前,web程序已预先对由相互关联的一组文件形成的文件组赋予唯一编号即组ID,因此,当web程序接收当前文件组访问请求可以解析出其中包含的当前被访问文件组的组ID。
本步骤中,相互关联的一组文件数据是指采用医疗影像设备进行一次扫描产生的所有影像文件,一般包含从几百个到几千个不等的图像文件。
S102、web程序于localstorage中对当前被访问文件组的组ID进行检索,localstorage中保存有文件数据仍存储在缓存数据库中的历史被访问文件组的组ID,若localstorage中不存在当前被访问文件组的组ID,则web程序将当前被访问文件组的组ID加入localstorage中,并通知serviceworker将与当前被访问文件组的组ID匹配的一组文件数据下载存入缓存数据库中,缓存数据库中保存有与历史被访问文件组的组ID匹配的文件数据,若localstorage中存在当前被访问文件组的组ID,则web程序不予处理;
其中,web程序通知serviceworker缓存与当前被访问文件组的组ID匹配的一组文件数据前,先将该组文件中每一文件的URL进行预处理,web程序再将该组文件分为若干单元,每次将一个单元包含的各个文件经预处理后的URL发送给serviceworker,以使serviceworker基于该单元包含的文件经预处理后的URL缓存该单元包含的文件的文件数据,并在该单元包含的文件的文件数据缓存完成后,给web程序反馈单元数据缓存完成信息,web程序再基于该单元数据缓存完成信息于页面显示并更新该组文件的缓存进度。
本步骤中,web程序与serviceworker的交互通过相互发送消息的方式实现。
serviceworker基于该单元包含的文件经预处理后的URL缓存该单元包含的文件的文件数据时,将文件经预处理后的URL作为文件的key,在缓存数据库中,每一文件通过key-value的形式保存,文件的value部分则为文件数据。
web程序将与当前被访问文件组的组ID匹配的一组文件数据中每一文件的URL进行预处理的方法包括:将与当前被访问文件组的组ID匹配的一组文件数据中每一文件的访问路径后以满足URL规范的要求的方式加上该文件的组ID,如把组ID(有时还包括一些特殊标识符)加入到URL的query string部分,从而即能不影响通过URL下载到文件,又能在url中标识出需要的信息。
本步骤中,web程序每次将一个单元包含的各个文件经预处理后的URL通过消息的方式发送给serviceworker,serviceworker接受到该消息后,基于URL中的访问路径通过Cache.addAll()一次缓存该单元的所有文件的文件数据,每个单元的文件缓存完成后,serviceworker又通过发送消息的方式将单元数据缓存完成信息发送给web程序,web程序再基于该单元数据缓存完成信息于页面显示并更新该组文件的缓存进度,直至与当前被访问文件组的组ID匹配的一组文件数据缓存完全。
上述实施例中,由于localstorage中保存有历史被访问文件组的组ID,缓存数据库中保存有与历史被访问文件组的组ID匹配的文件数据,因此,若web程序于localstorage中检索到当前被访问文件组的组ID,说明当前被访问文件组的一组文件均存在于缓存数据库中,此时web程序就不再进行其他操作;若web程序于localstorage中未检索到当前被访问文件组的组ID,说明当前被访问文件组的一组文件均尚未被缓存过,此时,web程序将当前被访问文件组的组ID加入localstorage中,并通知serviceworker将与当前被访问文件组的组ID匹配的一组文件数据下载存入缓存数据库中,当再次接收到相同组ID的文件组访问请求时,无需再下载缓存同组的文件,即使得每次检查的所有影像文件实现了按组管理,而在医疗领域,由于一次检查的单个影像文件并不能完全反映实际情况,需要连续观看多个不同部位的影像文件,一次缓存一组文件的方案对于医疗领域的用户而言,更为方便高效。
另外,对于没有缓存过的影像文件,由于现有的医疗影像浏览用的web程序并不能在页面显示缓存进度,这导致用户不能在影像文件下载缓存完成后的第一时间知晓该消息,使得用户必须时不时的点击请求web加载文件,判断文件是否缓存好。上述实施例通过页面实时显示更新文件的缓存进度,使得用户在文件缓存完成后能马上看到,减少了文件缓存过程中用户点击请求web加载文件的无效操作,提高了用户使用体验。
在另一技术方案中,若localstorage中不存在当前被访问文件组的组ID,则web程序根据预设的localstorage中组ID存储上限判断是否需要清除历史被访问文件组的组ID,若需要,则当web程序清除localstorage中历史被访问文件组的组ID后再将当前被访问文件组的组ID加入localstorage中,serviceworker同时清除缓存数据库中与当前localstorage中保存的组ID不匹配的文件数据。
本步骤中,当localstorage中不存在当前被访问文件组的组ID时,web程序根据预设的localstorage中组ID存储上限判断是否需要清除历史被访问文件组的组ID,即若localstorage中尚有剩余存储空间可供存储当前被访问文件组的组ID,则不清除历史被访问文件组的组ID,直接将当前被访问文件组的组ID存入localstorage中,若localstorage中已被存满,则需要删除部分历史被访问文件组的组ID,再将当前被访问文件组的组ID存入localstorage中,web再将localstorage中保存的最新的组ID集合通过消息的方式发送给serviceworker。
serviceworker接收到最新的组ID集合后,通过遍历缓存数据库中的key,即可查出缓存数据库中是否有不属于组ID集合的文件组中的文件,对于不属于组ID集合的文件组中的文件直接删除,这样既能减少缓存数据库中无效数据,提高serviceworker于缓存数据库中提取文件的效率,又能节约缓存数据库的存储空间。
在另一技术方案中,每一单元缓存完成后,serviceworker向web程序反馈单元数据缓存完成信息,web程序于页面显示并更新缓存进度,在serviceworker与web程序交互期间,serviceworker维持同组文件数据中其他单元包含的文件的文件数据的缓存操作。
上述实施例中,serviceworker的Cache.addAll()接口提供了让后台同时缓存多个文件的能力,因此在serviceworker与web程序交互期间,并不耽误同组文件数据中其他单元包含的文件的文件数据的缓存任务,这样大大提高了文件的缓存效率。
参见图2,本发明还提供一种基于serviceworker的文件加载方法,其包括:
S201、应用上述的文件缓存方法缓存与当前被访问文件组的组ID匹配的一组文件数据;
本步骤中,无论缓存数据库初始是否保存有与当前被访问文件组的组ID匹配的一组文件数据,通过上述的文件缓存方法缓存后,与当前被访问文件组的组ID匹配的一组文件数据定然会被保存到缓存数据库。
S202、web程序获取当前被访问文件组中任一文件的当前文件访问请求,并对当前文件访问请求的URL进行预处理再通过fetch API发出,以使当前文件访问请求被serviceworker拦截,进而serviceworker对URL经过预处理后的当前文件访问请求进行解析,获得当前被访问文件的key,根据当前被访问文件的key于缓存数据库中提取当前文件访问请求需求的文件数据;
本步骤中,fetch API为web程序的一个接口,用于在JavaScript脚本里发出文件下载请求。
参见图3,本步骤中,web程序对当前文件访问请求的URL进行预处理的方法可以采取以下方式:
S2021、将serviceworker的拦截路径作为URL前缀,所述serviceworker的拦截路径为web程序的访问路径;
S2022、将当前被访问文件的组ID追加到被访问文件的访问路径上,再进行加密,然后附于所述URL前缀后;
S2023、加上第一特殊标识作为URL后缀,所述第一特殊标识用于使serviceworker识别当前文件访问请求的URL为需要拦截的对象。
由于与当前被访问文件的组ID匹配的一组文件数据在缓存时,采用文件经预处理后的URL作为文件的key,而文件的URL进行预处理的方法为:将与当前被访问文件的组ID匹配的一组文件数据中每一文件的访问路径后追加上该文件的组ID。
又web程序对当前文件访问请求的URL进行预处理的过程也包括将当前被访问文件的组ID追加到被访问文件的访问路径上,即当前文件访问请求的URL中包含当前被访问文件的key,因此serviceworker拦截并对URL经过预处理后的当前访问请求进行解析后,可得到当前被访问文件的key,从而可从缓存数据库中提取得到前文件访问请求需求的文件数据。
S203、web程序接收serviceworker发送的当前文件访问请求需求的文件数据并显示。
上述实施例中,由于serviceworker的完全异步性,当前被访问文件的缓存与加载过程可以不必同时进行,而且通过对当前文件访问请求的URL的预处理,使得被访问文件的访问路径和web程序的访问路径不相同时,serviceworker仍然可以拦截文件访求请求。
在另一技术方案中,若当web程序响应于当前文件访问请求时,还接收到其他文件访问请求,所述其他文件访问请求包含的被访问文件的组ID与当前文件访问请求包含的被访问文件的组ID不同,对于其他文件访问请求,web程序采用与当前文件访问请求的URL预处理相同的方法给予其他文件访问请求的URL以预处理,再追加第二特殊标识,所述第二特殊标识用于在缓存数据库中未保存与其他文件访问请求需求的文件数据时,使serviceworker解析其拦截的经预处理的其他文件访问请求的URL,获得其他被访问文件的访问路径和组ID后,仅下载其他被访问文件的文件数据并发送给web程序而不存入缓存数据库中。
本步骤中,web程序采用与当前文件访问请求的URL预处理相同的方法给予其他文件访问请求的URL以预处理是指:将serviceworker的拦截路径作为URL前缀,所述serviceworker的拦截路径为web程序的访问路径;将其他被访问文件的组ID追加到其他被访问文件的访问路径上,再进行加密,然后附于所述URL前缀后;加上第一特殊标识作为URL后缀,所述第一特殊标识用于使serviceworker识别其他文件访问请求的URL为需要拦截的对象。
其他文件访问请求的URL经预处理后,就能被serviceworker拦截,serviceworker将其他文件访问请求的URL进行解析后,获得其他被访问文件的访问路径和组ID,若缓存数据库中存在其他被访问文件的文件数据,那么根据其他被访问文件的访问路径和组ID(也即其他被访问文件的key),serviceworker可在缓存数据库中提取到其他被访问文件的文件数据并发送给web程序,若缓存数据库中不存在其他被访问文件的文件数据,由于其他文件访问请求的URL中追加有第二特殊标识,serviceworker可根据解析得到的其他被访问文件的访问路径直接下载其他被访问文件的文件数据,再基于第二特殊标识直接将其他被访问文件的文件数据并发送给web程序而不存入缓存数据库中。
由于在医疗领域,用户对疾病的诊断主要通过最近一次检查的一组影像文件,需要详细全面多次观看,而历史检查的影像文件,可能只需其中的一张或者几张与最新的进行对比,因此使用频率较低。而上述实施例中,对未被缓存的当前被访问文件进行其所在组的全组文件下载缓存,未被缓存的当前被访问文件主要有两种:一种是历史较久的影像文件,缓存数据库已经清除该文件的缓存,二是最新检查得到的影像文件,尚未被访问过,故尚未缓存。然而历史较久的影像文件不具备诊断参考价值,当前访问的几率不大。因此,当前被访问文件极大概率是最新检查得到的影像文件,对该文件所在组的全组文件下载,而对其他文件访问请求,只下载不缓存,极大的符合用户了需求,同时也节约了缓存空间。
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。
Claims (5)
1.一种基于serviceworker的文件缓存方法,其特征在于,包括:
web程序接收当前文件组访问请求并解析,以获取当前文件组访问请求中包含的当前被访问文件组的组ID,所述组ID为web程序预先对由相互关联的一组文件形成的文件组赋予的唯一编号;
web程序于localstorage中对当前被访问文件组的组ID进行检索,localstorage中保存有历史被访问文件组的组ID,若localstorage中不存在当前被访问文件组的组ID,则web程序将当前被访问文件组的组ID加入localstorage中,并通知serviceworker将与当前被访问文件组的组ID匹配的一组文件数据下载存入缓存数据库中,缓存数据库中保存有与历史被访问文件组的组ID匹配的文件数据,若localstorage中存在当前被访问文件组的组ID,则web程序不予处理;
其中,web程序通知serviceworker缓存与当前被访问文件组的组ID匹配的一组文件数据前,先将该组文件中每一文件的URL进行预处理,web程序再将该组文件分为若干单元,每次将一个单元包含的各个文件经预处理后的URL发送给serviceworker,以使serviceworker基于该单元包含的文件经预处理后的URL缓存该单元包含的文件的文件数据,并在该单元包含的文件的文件数据缓存完成后,给web程序反馈单元数据缓存完成信息,web程序再基于单元数据缓存完成信息于页面显示并更新该组文件的缓存进度;
若localstorage中不存在当前被访问文件组的组ID,则web程序根据预设的localstorage中组ID存储上限判断是否需要清除历史被访问文件组的组ID,若需要,则当web程序清除localstorage中历史被访问文件组的组ID后再将当前被访问文件组的组ID加入localstorage中,serviceworker同时清除缓存数据库中与当前localstorage中保存的组ID不匹配的文件数据;
serviceworker基于该单元包含的文件经预处理后的URL缓存该单元包含的文件的文件数据时,将文件经预处理后的URL作为文件的key;
web程序将与当前被访问文件组的组ID匹配的一组文件数据中每一文件的URL进行预处理的方法包括:将与当前被访问文件组的组ID匹配的一组文件数据中每一文件的访问路径后追加上该文件组的组ID。
2.如权利要求1所述的基于serviceworker的文件缓存方法,其特征在于,每一单元缓存完成后,serviceworker向web程序反馈单元数据缓存完成信息,web程序于页面显示并更新缓存进度,在serviceworker与web程序交互期间,serviceworker维持同组文件数据中其他单元包含的文件的文件数据的缓存操作。
3.一种基于serviceworker的文件加载方法,其特征在于,包括:
应用如权利要求1所述的文件缓存方法缓存与当前被访问文件组的组ID匹配的一组文件数据;
web程序获取当前被访问文件组中任一文件的当前文件访问请求,并对当前文件访问请求的URL进行预处理再通过fetch API发出,以使当前文件访问请求被serviceworker拦截,进而serviceworker对URL经过预处理后的当前文件访问请求进行解析,获得当前被访问文件的key,根据当前被访问文件的key于缓存数据库中提取当前文件访问请求需求的文件数据;
web程序接收serviceworker发送的当前文件访问请求需求的文件数据并显示。
4.如权利要求3所述的基于serviceworker的文件加载方法,其特征在于,web程序对当前文件访问请求的URL进行预处理的方法包括:
将serviceworker的拦截路径作为URL前缀,所述serviceworker的拦截路径为web程序的访问路径;
将当前被访问文件的组ID追加到被访问文件的访问路径上,再进行加密,然后附于所述URL前缀后;
加上第一特殊标识作为URL后缀,所述第一特殊标识用于使serviceworker识别当前文件访问请求的URL为需要拦截的对象。
5.如权利要求4所述的基于serviceworker的文件加载方法,其特征在于,若当web程序响应于当前文件访问请求时,还接收到其他文件访问请求,所述其他文件访问请求包含的被访问文件的组ID与当前文件访问请求包含的被访问文件的组ID不同,对于其他文件访问请求,web程序采用与当前文件访问请求的URL预处理相同的方法给予其他文件访问请求的URL以预处理,再追加第二特殊标识,所述第二特殊标识用于在缓存数据库中未保存与其他文件访问请求需求的文件数据时,使serviceworker解析其拦截的经预处理的其他文件访问请求的URL,获得其他被访问文件的访问路径和组ID后,仅下载其他被访问文件的文件数据并发送给web程序而不存入缓存数据库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310046504.6A CN116244538B (zh) | 2023-01-31 | 2023-01-31 | 基于serviceworker的文件缓存方法和加载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310046504.6A CN116244538B (zh) | 2023-01-31 | 2023-01-31 | 基于serviceworker的文件缓存方法和加载方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116244538A CN116244538A (zh) | 2023-06-09 |
CN116244538B true CN116244538B (zh) | 2023-11-21 |
Family
ID=86634283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310046504.6A Active CN116244538B (zh) | 2023-01-31 | 2023-01-31 | 基于serviceworker的文件缓存方法和加载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116244538B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101358851A (zh) * | 2007-08-03 | 2009-02-04 | 北京灵图软件技术有限公司 | 一种在本地缓存导航数据的方法、系统及客户端装置 |
CN103825919A (zh) * | 2012-11-16 | 2014-05-28 | 中国移动通信集团北京有限公司 | 一种缓存数据资源的方法、装置及系统 |
CN105550338A (zh) * | 2015-12-23 | 2016-05-04 | 北京大学 | 一种基于HTML5应用缓存的移动Web缓存优化方法 |
CN107451182A (zh) * | 2017-06-15 | 2017-12-08 | 彭志勇 | 基于Appcache 的文件缓存方法 |
CN108170745A (zh) * | 2017-12-20 | 2018-06-15 | 福建网龙计算机网络信息技术有限公司 | 一种访问web端缓存数据的方法及终端 |
CN111475180A (zh) * | 2019-01-24 | 2020-07-31 | 北京京东尚科信息技术有限公司 | 更新客户端缓存的方法和系统 |
CN112015706A (zh) * | 2019-05-31 | 2020-12-01 | 深圳市茁壮网络股份有限公司 | 一种文件缓存方法、系统及缓存系统 |
CN112463833A (zh) * | 2020-12-04 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种数据集获取方法、系统、设备以及介质 |
CN113065084A (zh) * | 2021-03-08 | 2021-07-02 | 南京苏宁软件技术有限公司 | 数据加载方法、装置、计算机设备和存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9336323B2 (en) * | 2006-08-04 | 2016-05-10 | Flash Networks, Inc. | Method and system for accelerating surfing the internet |
US20100115613A1 (en) * | 2008-10-31 | 2010-05-06 | Google Inc. | Cacheable Mesh Browsers |
US9794357B2 (en) * | 2013-10-23 | 2017-10-17 | Cision Us Inc. | Web browser tracking |
-
2023
- 2023-01-31 CN CN202310046504.6A patent/CN116244538B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101358851A (zh) * | 2007-08-03 | 2009-02-04 | 北京灵图软件技术有限公司 | 一种在本地缓存导航数据的方法、系统及客户端装置 |
CN103825919A (zh) * | 2012-11-16 | 2014-05-28 | 中国移动通信集团北京有限公司 | 一种缓存数据资源的方法、装置及系统 |
CN105550338A (zh) * | 2015-12-23 | 2016-05-04 | 北京大学 | 一种基于HTML5应用缓存的移动Web缓存优化方法 |
CN107451182A (zh) * | 2017-06-15 | 2017-12-08 | 彭志勇 | 基于Appcache 的文件缓存方法 |
CN108170745A (zh) * | 2017-12-20 | 2018-06-15 | 福建网龙计算机网络信息技术有限公司 | 一种访问web端缓存数据的方法及终端 |
CN111475180A (zh) * | 2019-01-24 | 2020-07-31 | 北京京东尚科信息技术有限公司 | 更新客户端缓存的方法和系统 |
CN112015706A (zh) * | 2019-05-31 | 2020-12-01 | 深圳市茁壮网络股份有限公司 | 一种文件缓存方法、系统及缓存系统 |
CN112463833A (zh) * | 2020-12-04 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种数据集获取方法、系统、设备以及介质 |
CN113065084A (zh) * | 2021-03-08 | 2021-07-02 | 南京苏宁软件技术有限公司 | 数据加载方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116244538A (zh) | 2023-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10735548B1 (en) | Utilizing page information regarding a prior loading of a web page to generate hinting information for improving load time of a future loading of the web page | |
US9055124B1 (en) | Enhanced caching of network content | |
US9106607B1 (en) | Browser based feedback for optimized web browsing | |
US20190222667A1 (en) | Speculative prefetch of resources across page loads | |
US20200137189A1 (en) | Flexible caching | |
US9075893B1 (en) | Providing files with cacheable portions | |
US9244897B1 (en) | Methods and systems for javascript parsing | |
WO2020199751A1 (zh) | 用于加载页面图片的方法、装置和电子设备 | |
CN107329963B (zh) | 加速网页访问的方法和装置 | |
US20090063262A1 (en) | Batching ad-selection requests for concurrent communication | |
US20180239794A1 (en) | Caching of updated network content portions | |
US8438474B1 (en) | Speculative rendering during cache revalidation | |
US20150363369A1 (en) | Method and Apparatus of Processing Nested Fragment Caching of a Web Page | |
CN106599239A (zh) | 网页内容数据获取方法及服务器 | |
US20070083649A1 (en) | Performance monitoring of network applications | |
US20020174174A1 (en) | System and method for monitoring execution time of a transaction | |
CN108984553B (zh) | 缓存方法和装置 | |
JP5705114B2 (ja) | 情報処理装置、情報処理方法、プログラムおよびウェブ・システム | |
US9934081B2 (en) | Conditional saving of input data | |
US20180302489A1 (en) | Architecture for proactively providing bundled content items to client devices | |
CN111225010A (zh) | 数据处理方法、数据处理系统以及装置 | |
US20240160684A1 (en) | Browser based feedback for optimized web browsing | |
CN106911735A (zh) | 数据获取方法及装置 | |
US11783002B2 (en) | Intelligent dynamic preloading | |
US20080168229A1 (en) | Method of Caching Data Assets |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |