CN117892024A - 一种浏览器存储资源管理方法及显示设备 - Google Patents
一种浏览器存储资源管理方法及显示设备 Download PDFInfo
- Publication number
- CN117892024A CN117892024A CN202311700285.5A CN202311700285A CN117892024A CN 117892024 A CN117892024 A CN 117892024A CN 202311700285 A CN202311700285 A CN 202311700285A CN 117892024 A CN117892024 A CN 117892024A
- Authority
- CN
- China
- Prior art keywords
- website
- storage
- storage area
- data
- target website
- 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
- 238000007726 management method Methods 0.000 title abstract description 17
- 238000000034 method Methods 0.000 claims abstract description 13
- 238000004891 communication Methods 0.000 claims description 15
- 238000005192 partition Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 11
- 238000013500 data storage Methods 0.000 description 9
- 238000013507 mapping Methods 0.000 description 8
- 230000001133 acceleration Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000012216 screening Methods 0.000 description 4
- 238000004140 cleaning Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例公开一种浏览器存储资源管理方法及显示设备,该方法包括:在浏览器启动目标网站时,如果目标网站在先未注册服务工作者,控制浏览器为目标网站注册及安装服务工作者;在目标网站注册及安装服务工作者后,控制浏览器将目标网站的元数据存入存储器的第一存储区域,元数据包括目标网站的第一网站标识;控制浏览器将目标网站已注册的服务工作者的脚本数据存入存储器的第二存储区域;控制浏览器向服务器请求目标网站的资源数据,并将目标网站的资源数据存入存储器的第三存储区域。本申请中服务工作者通过对多个网站的数据按类别分区存储以实现精准可控管理,不存储元数据、sw.js和资源数据以外的无用数据,节省存储器的存储资源。
Description
技术领域
本申请涉及显示设备技术领域,尤其涉及一种浏览器存储资源管理方法及显示设备。
背景技术
显示设备的浏览器可以配置ServiceWorker(服务工作者)功能,ServiceWorker可以将网站资源存储到指定磁盘中,这样用户再次打开网站时的启动速度加快,能够实现离线显示、离线提示、首页加速等功能。显示设备(例如智能电视)的浏览器大多不支持ServiceWorker,对于某些支持ServiceWorker的显示设备,存在如下问题:
(1)显示设备的存储受限,磁盘较容易存满,导致无法继续存储其他网站的数据。
(2)无法释放被占用的存储空间,ServiceWorker为先到先存机制,先被访问的网站占据优先存储权,在磁盘未不小于存储上限时,无论网站资源是否有必要存,都会被存入磁盘,直至磁盘存满,这样旧网站的旧资源始终占用磁盘空间,新网站的新资源无法存入。
因此,有必要对显示设备的ServiceWorker实施存储管理。
发明内容
本申请实施例提供一种浏览器存储资源管理方法及显示设备,可以对多个网站的ServiceWorker按数据类别分区存储,实现对ServiceWorker存储的精准可控管理,并且网站相关数据是经过筛选后存储的,除元数据、sw.js和资源数据之外的无用数据不被保存到存储器,节省存储器的存储资源,实现存储粒度从原来的单个网站级别提升到每个网站的单个资源级别。
第一方面,本申请实施例提供一种显示设备,包括:
存储器,包括第一存储区域、第二存储区域和第三存储区域;
通信器,用于与服务器通信连接;
控制器,被配置为:
在浏览器启动目标网站时,如果所述目标网站在先未注册服务工作者,则控制浏览器为所述目标网站注册及安装服务工作者;
在所述目标网站注册及安装服务工作者后,控制浏览器将所述目标网站的元数据存入所述第一存储区域,所述元数据包括所述目标网站的第一网站标识;
控制浏览器将所述目标网站已注册的服务工作者的脚本数据存入所述第二存储区域;
控制浏览器向服务器请求加载所述目标网站的资源数据,以及将所述目标网站的资源数据存入所述第三存储区域。
在一些实施例中,所述控制器还被配置为:在启动所述目标网站时,访问所述第一存储区域;如果从所述第一存储区域未读取到所述第一网站标识,确定所述目标网站在先未注册服务工作者;如果从所述第一存储区域读取到所述第一网站标识,确定所述目标网站在先已注册服务工作者。
在一些实施例中,所述显示设备还包括显示器,则在确定所述目标网站在先已注册服务工作者之后,所述控制器还被配置为:控制浏览器向服务器请求所述目标网站已注册的服务工作者的第二脚本数据;继续访问所述第二存储区域,获取所述第二存储区域在先已存储的所述目标网站注册的服务工作者的第一脚本数据;如果所述第一脚本数据和所述第二脚本数据不同,则利用所述第二脚本数据更新所述第二存储区域存储的所述目标网站注册的服务工作者的脚本数据;继续访问所述第三存储区域,获取所述第三存储区域在先已存储的所述目标网站的第二资源数据,利用所述第二资源数据生成目标页面,并控制所述显示器显示所述目标页面。
在一些实施例中,所述第二存储区域包括第一存储单元,所述第一存储单元被设置对应的第一存储限值,所述第一存储单元用于集中存储多个网站已注册的服务工作者的脚本数据。
在一些实施例中,所述第三存储区域包括至少一个第二存储单元,所述第二存储单元被设置对应的第二存储限值,所述第二存储单元用于存储一个网站的资源数据,所述资源数据包括网站的HTML数据、层叠样式表数据和媒体数据。
在一些实施例中,所述控制器还被配置为:在所述第二存储单元的数据储量不小于所述第二存储限值时,优先删除所述第二存储单元中存储的媒体数据,以释放被媒体数据占用的存储空间。
在一些实施例中,所述元数据还包括网站的网址、访问次数、最后访问时间和网站已占用内存,则所述控制器还被配置为:在所述第一存储单元的数据储量不小于所述第一存储限值时,根据所述第一存储区域存储的M个网站的所述元数据,分别计算M个网站对应的存储权重;
按照存储权重从低到高的优先级顺序,删除所述第一存储单元中存储的网站的脚本数据,使所述第一存储单元的数据储量降至小于所述第一存储限值。
在一些实施例中,所述元数据还包括网站的网址、访问次数、最后访问时间和网站已占用内存,则所述控制器还被配置为:在所述第三存储区域的数据储量不小于存储上限时,根据所述第一存储区域存储的M个网站的所述元数据,分别计算M个网站对应的存储权重;按照存储权重从低到高的优先级顺序,删除所述第三存储区域中所述第二存储单元存储的资源数据,使所述第三存储区域的数据储量降至小于所述存储上限。
在一些实施例中,所述控制器还被配置为:在启动所述目标网站时,访问所述第一存储区域;如果从所述第一存储区域读取到所述第一网站标识,更新所述第一存储区域存储的所述目标网站的所述元数据。
第二方面,本申请实施例还提供一种浏览器存储资源管理方法,该方法包括:
在浏览器启动目标网站时,如果所述目标网站在先未注册服务工作者,则控制浏览器为所述目标网站注册及安装服务工作者;
在所述目标网站注册及安装服务工作者后,控制浏览器将所述目标网站的元数据存入存储器中的第一存储区域,所述元数据包括所述目标网站的第一网站标识;
控制浏览器将所述目标网站已注册的服务工作者的脚本数据存入所述存储器中的第二存储区域;
控制浏览器向服务器请求加载所述目标网站的资源数据,以及将所述目标网站的资源数据存入所述存储器中的第三存储区域。
本申请实施例中对于存储受限较大的显示设备,ServiceWorker可以对多个网站的数据按类别分区存储,例如将网站的元数据保存在第一存储区域,将ServiceWorker的脚本数据sw.js存入第二存储区域,将网站的资源数据(例如图片、CSS、HTML等)存入第三存储区域,这样在存储器的存储量不小于上限时,可以按照数据类别,或者按照数据优先级,或者按需选择删除哪个存储区域中的数据,进而降低存储器的存储占用,并且实现对多个网站ServiceWorker的动态精准存储管理,并且网站相关数据都是经过筛选后存储的,除元数据、sw.js和资源数据之外的无用数据不被保存到存储器,节省存储器的存储资源,实现存储粒度从原来的单个网站级别提升到每个网站的单个资源级别。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一些实施例提供的显示设备与控制装置100之间操作场景;
图2为本申请一些实施例提供的控制装置100的硬件配置框图;
图3为本申请一些实施例提供的显示设备200的硬件配置框图;
图4为本申请一些实施例提供的显示设备200中软件配置图;
图5为本申请一些实施例提供的存储器的存储架构示意图;
图6为本申请一些实施例提供的一种浏览器存储资源管理方法的流程图;
图7为本申请一些实施例提供的第一存储区域(Database)的存储结构示意图;
图8为本申请一些实施例提供的第二存储区域(ScriptCache)的存储结构示意图;
图9为本申请一些实施例提供的第三存储区域(CacheStorage)的存储结构示意图;
图10为本申请一些实施例提供的存储区域设置页面10的示意图一;
图11为本申请一些实施例提供的存储区域设置页面10的示意图二;
图12为本申请一些实施例提供的第二存储区域(ScriptCache)更新前后的示意图;
图13为本申请一些实施例提供的第三存储区域(CacheStorage)更新示意图一;
图14为本申请一些实施例提供的第三存储区域(CacheStorage)更新示意图二。
具体实施方式
为使本申请的目的和实施方式更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施方式进行清楚、完整地描述,显然,描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。
需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换。
术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
本申请实施方式提供的显示设备可以具有多种实施形式,例如,可以是电视、智能电视、激光投影设备、显示器260(monitor)、电子白板(electronic bulletin board)、电子桌面(electronic table)等。图1和图2为本申请的显示设备的一种具体实施方式。
图1为根据实施例中显示设备与控制装置100之间操作场景的示意图。如图1所示,用户可通过智能设备300或控制装置100操作显示设备200。
在一些实施例中,控制装置100可以是遥控器,遥控器和显示设备的通信包括红外协议通信或蓝牙协议通信,及其他短距离通信方式,通过无线或有线方式来控制显示设备200。用户可以通过遥控器上按键、语音输入、控制面板输入等输入用户指令,来控制显示设备200。或者,控制装置100还可以是鼠标,鼠标与显示设备可通过有线或无线方式连接。
在一些实施例中,也可以使用智能设备300(如移动终端、平板电脑、计算机、笔记本电脑等)以控制显示设备200。例如,使用在智能设备上运行的应用程序控制显示设备200。
在一些实施例中,显示设备可以不使用上述的智能设备或控制设备接收指令,而是通过触摸或者手势等接收用户的控制。
在一些实施例中,显示设备200还与服务器400进行数据通信。可允许显示设备200通过局域网(LAN)、无线局域网(WLAN)和其他网络进行通信连接。服务器400可以向显示设备200提供各种内容和互动。服务器400可以是一个集群,也可以是多个集群,可以包括一类或多类服务器。
在一些实施例中,服务器400可以包括流媒体服务器。显示设备200在与流媒体服务器建立通信连接之后,可以向流媒体服务器获取流媒体数据,以及播放接收的流媒体数据。
图2示出一些实施例中的根据示例性实施例中控制装置100的配置框图。如图2所示,控制装置100包括控制器110、通信接口130、用户输入/输出接口140、存储器、供电电源。控制装置100可接收用户的输入操作指令,且将操作指令转换为显示设备200可识别和响应的指令,起用用户与显示设备200之间交互中介作用。
图3为本申请一些实施例提供的显示设备200的硬件配置框图。如图3所示,显示设备200包括调谐解调器210、通信器220、检测器230、外部装置接口240、控制器250、显示器260、音频输出接口270、存储器、供电电源、用户接口中的至少一种。
在一些实施例中,控制器包括处理器,视频处理器,音频处理器,图形处理器,RAM,ROM,用于输入/输出的第一接口至第n接口。
在一些实施例中,通信器220是用于根据各种通信协议类型与外部设备或服务器进行通信的组件。例如:通信器可以包括Wifi模块,蓝牙模块,有线以太网模块等其他网络通信协议芯片或近场通信协议芯片,以及红外接收器中的至少一种。显示设备200可以通过通信器220与控制装置100或服务器400建立控制信号和数据信号的发送和接收。
在一些实施例中,通信器220可用于建立显示设备200与流媒体服务器之间的通信连接,以实现显示设备200和流媒体服务器之间的交互。控制器250可以通过通信器220向流媒体服务器发送下载请求,以使流媒体服务器响应于下载请求向显示设备200发送流媒体数据。控制器250通过通信器220接收流媒体数据之后,可以启动流媒体播放器,并控制流媒体播放器播放流媒体数据,流媒体数据包括音视频数据。
在一些实施例中,显示器260包括用于呈现画面的显示屏组件,以及驱动图像显示的驱动组件,用于接收源自控制器输出的图像信号,进行显示视频内容、图像内容以及菜单操控界面的组件以及用户操控UI界面。显示器260还可用于显示流媒体的视频数据。
在一些实施例中,音频输出接口270可以连接音频播放装置,音频播放装置用于播放流媒体的音频数据。音频输出接口270可以连接显示设备200内置的扬声器。音频输出接口还可以包括外接音响输出端子,外接音响输出端子用于通过有线方式连接外部的音频播放装置(例如:音响设备)。音频播放装置还可以是通过通信器220无线连接的外部功放(例如:蓝牙音响,蓝牙耳机等)。
用户接口,可用于接收控制装置100(如:红外遥控器、鼠标等)的控制信号,该控制信号包括用户通过控制装置100输入的流媒体点播操作。
外部装置接口240可以包括但不限于如下:高清多媒体接口(HDMI)、模拟或数据高清分量输入接口(分量)、复合视频输入接口(CVBS)、USB输入接口(USB)、RGB端口等任一个或多个接口。也可以是上述多个接口形成的复合性的输入/输出接口。
控制器250,通过存储在存储器上中各种软件控制程序,来控制显示设备的工作和响应用户的操作。控制器250控制显示设备200的整体操作。例如:响应于接收到用于选择在显示器260上显示UI对象的用户命令,控制器250便可以执行与由用户命令选择的对象有关的操作。
在一些实施例中控制器包括中央处理器(Central Processing Unit,CPU),视频处理器,音频处理器,图形处理器(Graphics Processing Unit,GPU),RAM Random AccessMemory,RAM),ROM(Read-Only Memory,ROM),用于输入/输出的第一接口至第n接口,通信总线(Bus)等中的至少一种。
用户可在显示器260上显示的图形用户界面(GUI)输入用户命令,则用户输入接口通过图形用户界面(GUI)接收用户输入命令。或者,用户可通过输入特定的声音或手势进行输入用户命令,则用户输入接口通过传感器识别出声音或手势,来接收用户输入命令。
“用户界面”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面常用的表现形式是图形用户界面(Graphic User Interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的一个图标、窗口、控件等界面元素,其中控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
在一些实施例中,图形处理器,用于产生各种图形对象,如:图标、操作菜单、以及基于用户的输入指令显示的页面内容等中的至少一种。图形处理器包括运算器,通过接收用户输入各种交互指令进行运算,根据显示属性显示各种对象;还包括渲染器,对基于运算器得到的各种对象,进行渲染,上述渲染后的对象用于显示在显示器上。
在一些实施例中,如图4所示,将显示设备的系统分为三层,从上至下分别为应用层、中间件层和硬件层。
在一些实施例中,应用层主要包含电视上的常用应用,以及应用框架(Application Framework),其中,常用应用主要是基于浏览器Browser开发的应用,例如:HTML5 APPs;以及原生应用(Native APPs);
在一些实施例中,应用框架(Application Framework)是一个完整的程序模型,具备标准应用软件所需的一切基本功能,例如:文件存储、资料交换...,以及这些功能的使用接口(工具栏、状态列、菜单、对话框)。
在一些实施例中,原生应用(Native APPs)可以支持在线或离线,消息推送或本地资源访问。
在一些实施例中,中间件层包括各种电视协议、多媒体协议以及系统组件等中间件。中间件可以使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够不小于资源共享、功能共享的目的。
在一些实施例中,硬件层主要包括HAL接口、硬件以及驱动,其中,HAL接口为所有电视芯片对接的统一接口,具体逻辑由各个芯片来实现。驱动主要包含:音频驱动、显示驱动、蓝牙驱动、摄像头驱动、WIFI驱动、USB驱动、HDMI驱动、传感器驱动(如指纹传感器,温度传感器,压力传感器等)、以及电源驱动等。
在一些实施例中,电子设备可以安装浏览器应用,浏览器可以配置ServiceWorker(服务工作者)功能。ServiceWorker是注册在指定源和路径下的事件驱动worker,是一种可在后台运行JavaScript的Web API。ServiceWorker独立于主线程,并且可以在浏览器后台运行JavaScript以控制相关联的多个网站,ServiceWorker可以将网站资源缓存到指定存储路径(例如磁盘等),可以拦截对网站资源的网络请求并且将其转换为来自缓存的响应,即从指定存储路径读取在先缓存的网站资源,并根据该网站资源显示网页,从而实现网络启动加速、离线显示、离线提示、首页加速等功能。
在一些实施例中,在浏览器打开网站A时,浏览器可以开启网站A对应的进程a,进程a中的主线程用于执行任务,该任务包括但不限于解析HTML(Hyper Text MarkupLanguage,超文本标记语言)、CSS(Cascading Style Sheets,层叠样式表)和JavaScript(脚本,简称js)等。主线程还用于判断网站A是否注册ServiceWorker,如果已注册ServiceWorker,可以开启ServiceWorker线程(以下简称:SW线程),并记录当前网站的URL(Uniform Resource Locator,统一资源定位符)等,这样浏览器下一次打开该URL对应的网站时,自动开启sw线程,SW线程可以用于缓存网站资源,以及从指定存储路径读取已缓存的网站资源。如果网站A在先未注册ServiceWorker,则可以不开启SW线程,由主线程通过网络向服务器加载网站资源并显示对应的页面。
在一些实施例中,在用户首次访问ServiceWorker关联控制的网站时,需要先注册ServiceWorker,首次注册成功的ServiceWorker不能拦截当前的页面请求。在ServiceWorker被注册成功后进入生命周期,ServiceWorker的生命周期包括下载、安装、激活、废弃等状态。浏览器下载并安装ServiceWorker后,激活ServiceWorker,ServiceWorker被激活后会取得对整个页面的控制,废弃状态是指ServiceWorker生命周期结束,在ServiceWorker版本进行后被替换的旧版本ServiceWorker会呈现废弃状态。
在一些实施例中,电子设备不清楚每个网站需要的ServiceWorker存储大小,因此尽最大程度支持ServiceWorker存储,不会对ServiceWorker进行存储管理,直至受到存储限制,例如磁盘存满,无可用的存储空间,则无法继续ServiceWorker功能。对于与前述显示设备200相同或相似的显示设备,受限于操作系统、存储能力和硬件设计等因素,可能不支持或限制了某些Web功能,例如不支持ServiceWorker。某些支持ServiceWorker的显示设备,存在如下问题:
(1)显示设备的存储受限较大,磁盘较容易存满。一旦磁盘存满,ServiceWorker无法继续存储其他的网站资源数据。
(2)显示设备的浏览器对资源的新鲜度要求较高。如果前端没有及时释放缓存资源,会就导致ServiceWorker始终缓存网站的旧资源,无法缓存和更新网站的资源数据。
(3)原生ServiceWorker为先到先存机制,即先被访问的网站占据优先存储权,在磁盘未不小于存储上限时,无论网站资源是否有必要存,都会被存入磁盘,直至不小于磁盘存储上限,导致旧网站的旧资源始终占用磁盘空间,新网站将无法成功注册ServiceWorker,导致ServiceWorker无法存储新网站的新资源。
为解决以上技术问题,本申请以下实施例为显示设备的ServiceWorker提供精准的存储管理策略。
在一些实施例中,显示设备可以为ServiceWorker配置相关联的存储器,该存储器用于缓存已成功注册ServiceWorker的网站的相关数据,网站相关数据包括元数据、ServiceWorker的脚本数据(以下简称:sw.js)和资源数据。存储器的类型不限定,例如为磁盘。
在一些实施例中,存储器可以包括多种存储区域,以实现ServiceWorker对多个网站的数据按类别分区存储。图5为本申请一些实施例提供的存储器的存储架构示意图,参见图5,存储器可以包括第一存储区域(又可称:Database区域)、第二存储区域(又可称:ScriptCache区域)和第三存储区域(又可称:CacheStorage区域)。
在一些实施例中,存储器可以包括第一存储区域,第一存储区域用于存储已成功注册ServiceWorker的网站的元数据,其中元数据包括但不限于网站的网站标识、网站地址、最后访问时间、访问次数、网站已占用内存等。
在一些实施例中,存储器可以包括第二存储区域,第二存储区域用于存储已成功注册ServiceWorker的网站的sw.js文件。
在一些实施例中,存储器可以包括第三存储区域,第三存储区域用于存储已成功注册ServiceWorker的网站的资源数据,其中资源数据包括但不限于HTML数据、CSS数据、图像数据等需要前端调用cache API进行缓存的数据。
在一些实施例中,由于资源数据通常数据量较大,(尤其是网站图片),并且资源数据占用的存储空间不可预测,ServiceWorker可按照预设规则向第三存储区域缓存网站的资源数据。其中,预设规则例如配置为:优先存储HTML和CSS,最后存储图像;或者,过滤并剔除非必要缓存的其他数据,实现资源数据的选择性存储。
在一些实施例中,ServiceWorker可以为存储器中包含的存储区域设置优先级,该优先级用于限定存储区域的读写顺序。例如,对于已注册ServiceWorker的网站A而言,其数据重要性为元数据>sw.js>资源数据,则可以设置优先级为Database区域>ScriptCache区域>CacheStorage区域。
图6为本申请一些实施例提供的一种浏览器存储资源管理方法的流程图。基于上述存储器的存储架构,参见图6,该方法可以由控制器执行,或者由控制器控制浏览器应用执行,包括如下步骤:
步骤S61,响应于用户打开目标网站的操作,控制浏览器启动目标网站。
步骤S62,判断目标网站在先是否注册ServiceWorker。
在一些实施例中,对于已成功注册ServiceWorker的任一网站A,第一存储区域存储有该网站A的元数据,元数据包括网站标识,由于每个网站标识都不同(即具有唯一性),则在启动目标网站时,控制器可以访问第一存储区域(Database),并判断从第一存储区域(Database)是否读取到目标网站的网站标识(以下简称:第一网站标识)。如果从第一存储区域(Database)未读取到第一网站标识,表明目标网站在先未注册ServiceWorker;如果从第一存储区域(Database)读取到第一网站标识,表明目标网站在先已注册ServiceWorker。
如果目标网站在先未注册ServiceWorker,则执行步骤S63;如果目标网站在先已注册ServiceWorker,则执行步骤S67。
步骤S63,为目标网站注册及安装ServiceWorker。
步骤S64,控制浏览器将目标网站的元数据存入第一存储区域(Database)。
步骤S65,控制浏览器将目标网站的sw.js文件存入第二存储区域(ScriptCache)。
步骤S66,控制浏览器向服务器请求加载目标网站的资源数据,根据网络请求的资源数据生成并显示目标页面,以及将目标网站的资源数据存入第三存储区域(CacheStorage)。
在目标网站注册并安装ServiceWorker之后,可以按照Database区域>ScriptCache区域>CacheStorage区域的优先级顺序,依次向Database存入目标网站的元数据、向ScriptCache存入目标网站的sw.js,以及向ScriptCache存入目标网站的资源数据。由于目标网站首次注册ServiceWorker,第三存储区域(CacheStorage)中在先未缓存目标网站的资源数据,因此ServiceWorker不会拦截网络请求,以使浏览器可以通过网络加载目标网站的资源数据,并根据服务器返回的资源数据显示目标网站的网页(简称:目标页面),以及将资源数据存入到第三存储区域(CacheStorage)。
步骤S67,获取第三存储区域(CacheStorage)在先已存储的目标网站的第二资源数据,利用第二资源数据生成目标页面,并控制显示器显示目标页面。
本申请实施例中,为便于区分,将通过网络请求的目标网站的资源数据命名为“第一资源数据”,将第三存储区域(CacheStorage)缓存的目标网站的资源数据命名为“第二资源数据”。如果目标网站在先注册过ServiceWorker,表明ServiceWorker在先将目标网站的资源数据存入到第三存储区域(CacheStorage),则ServiceWorker可以拦截网络请求,并从第三存储区域(CacheStorage)读取第二资源数据,从而实现ServiceWorker的离线显示、页面加速等功能。
在一些实施例中,SW线程访问存储器时,可以按照Database区域>ScriptCache区域>CacheStorage区域的优先级顺序,依序访问存储器内的各存储区域。首先,SW线程可以访问第一存储区域(Database),判断第一存储区域(Database)是否存储有目标网站的网站标识,以确定目标网站在先是否已注册ServiceWorker;其次,如果第一存储区域(Database)已存储目标网站的网站标识,SW线程可访问第二存储区域(ScriptCache)存储的目标网站的sw.js,以便实现目标网站的资源更新;最后,SW线程可访问第三存储区域(CacheStorage),以获取第三存储区域(CacheStorage)中已缓存的目标网站的第二资源数据。
在一些实施例中,当目标网站的相关数据(包括sw.js、HTML、CSS、Image等)需要更新时,都需要改变sw.js,在用户访问目标网站时,无论是否命中了缓存,浏览器都会再次请求sw.js,并将新旧版本的sw.js进行比对(例如逐个字节比对),如果新旧版本的sw.js不一致,则需要在第二存储区域(ScriptCache)更新目标网站关联的sw.js,以便更新网站资源。
在一些实施例中,浏览器可以向服务器请求目标网站已注册的ServiceWorker最新的脚本数据(以下简称:第二脚本数据或第二sw.js),控制SW线程获取第二存储区域(ScriptCache)在先存储的目标网站已注册的ServiceWorker的脚本数据(以下简称:第一脚本数据或第一sw.js)。浏览器可以比较第一sw.js(旧版本)和第二sw.js(新版本)是否相同,如果新旧版本的sw.js相同,则无需更新sw.js和其他资源数据;如果新旧版本的sw.js不同,则利用第二sw.js更新第二存储区域(ScriptCache)中目标网站关联的sw.js文件。
在一些实施例中,在sw.js发生更新时,ServiceWorker可以根据VERSION字段,在第三存储区域(CacheStorage)新建一个映射第二sw.js的缓存空间A′,并将目标网站新的资源数据存储在缓存空间A′内,等待第一sw.js所控制的页面全部关闭之后,第二sw.js会被激活,第一sw.js进入废弃状态,在Activity事件中删除映射第一sw.js的缓存空间A。这样既能保证在同时打开多个网页时sw.js的更新不出差错,也能及时删除冗余的缓存。
在一些实施例中,在用户每次访问目标网站时,浏览器可以控制SW线程访问第一存储区域(Database),如果第一存储区域(Database)包含第一网站标识,则更新第一存储区域(Database)存储的目标网站的元数据。例如,每访问一次目标网站,SW线程可以将目标网站的访问次数累积加一,以及更新目标网站的最后访问时间,假设第一存储区域(Database)记录前一次访问目标网站的时间为T1,当前访问目标网站的时间为T2,则将最后访问时间由T1修改为T2;如果目标网站的网址发生更改,则SW线程更新第一存储区域(Database)存储的目标网站的网址。存储器中各存储区域的更新和读写主要由SW线程执行,不占用主线程,所以不影响主线程任务的执行。
以上实施例中,ServiceWorker可以对多个网站的数据按类别分区存储,这样在存储器不小于存储上限时,可以按照数据类别,或者按照数据优先级,或者按需选择删除哪个存储区域中的数据,例如优先删除第三存储区域(CacheStorage)中缓存的图像数据,进而降低存储器的存储占用,并且实现对多个网站ServiceWorker的动态精准存储管理。网站相关数据都是经过筛选后存储的,除元数据、sw.js和资源数据之外的无用数据不被保存到存储器,节省存储器的存储资源,实现存储粒度从原来的单个网站级别提升到每个网站的单个资源级别。此外,通过第一存储区域(Database)是否存储第一网站标识,可以快速精准地判别目标网站在先是否已注册ServiceWorker,确定获取资源数据的途径(离线读取磁盘缓存或线上网络请求),有利于提升目标网站的访问速度。
图7为本申请一些实施例提供的第一存储区域(Database)的存储结构示意图,参见图7,第一存储区域(Database)中存储的是各网站(例如网站A、网站B、网站C…)在注册ServiceWorker后的元数据,由于元数据是比较重要的核心数据,并且元数据的数据量通常较小,对于磁盘存储空间的占用就较少,因此可以不设置单个网站在第一存储区域(Database)内的存储上限,存储上限是指允许占用的最大存储空间。第一存储区域(Database)可以对各网站的元数据进行排序存储,例如按照注册时间的先后顺序排序,按照对第一存储区域(Database)的占用大小排序等。
在一些实施例中,sw.js文件是ServiceWorker的核心脚本,若无sw.js文件,网站无法注册及安装ServiceWorker,也就不能将网站的元数据、sw.js和资源数据存入ServiceWorker关联的存储器/磁盘内,单个网站的sw.js数据量通常较小(仅需几十k到几百k),可以将多个网站的sw.js集中存储到一块backend(以下称为:第一存储单元)上。图8为本申请一些实施例提供的第二存储区域(ScriptCache)的存储结构示意图,参见图8,第二存储区域(ScriptCache)包括第一存储单元,第一存储单元包括已注册及安装ServiceWorker的网站的sw.js,第一存储单元被设置对应的第一存储限值,第一存储限值用于限定第一存储单元的存储上限。第一存储限值可以等于或者略小于第二存储区域(ScriptCache)的大小。
在一些实施例中,前端的浏览器网页可以与后端对接,通过调用cache API,使SW线程将网页中的HTML、CSS、媒体数据等资源数据存储在第三存储区域(CacheStorage)。特别是其中的媒体数据,媒体数据包括但不限于图像、视频和音频等。
在一些实施例中,可以在第三存储区域(CacheStorage)中为每个网站创建对应的一块backend(以下称为:第二存储单元)。图9为本申请一些实施例提供的第三存储区域(CacheStorage)的存储结构示意图,参见图9,第三存储区域(CacheStorage)包括若干第二存储单元,第二存储单元用于存储一个网站的资源数据,第二存储单元被设置对应的第二存储限值,第二存储限值用于限定第二存储单元的存储上限。
在一些实施例中,在第一存储区域(Database)新增任一个已注册ServiceWorker的网站C的元数据,以及第二存储区域(ScriptCache)的第一存储单元新增网站C的sw.js时,浏览器可以控制第三存储区域(CacheStorage)新创建一个映射于网站C的第二存储单元c,并将网站C的资源数据存入第二存储单元c内。
在一些实施例中,如果网站D被注销注册,浏览器可以从第一存储区域(Database)删除网站D的元数据,从第二存储区域(ScriptCache)的第一存储单元删除网站D的sw.js,以及从第三存储区域(CacheStorage)删除网站D映射的第二存储单元d。
需要说明的是,每块第二存储单元对应的第二存储限值相同或不同,具体可以根据不同网站的资源特性适应性地配置每块第二存储单元的存储上限。例如,瀑布流网站多偏向于图片展示,资源数据量较大,因此可以为瀑布流网站的第二存储单元设置相对较大的第二存储限值;又例如,百科或知识类网站多偏向于本文展示,资源数据量较小,则可为这类网站的第二存储单元设置相对较小的第二存储限值。
在一些实施例中,控制器可以根据设备自身的硬件条件,为ServiceWorker分配相关联的存储器(例如磁盘)后,浏览器可以根据磁盘大小,动态分配第一存储区域(Database)、第二存储区域(ScriptCache)和第三存储区域(CacheStorage),设置第二存储区域(ScriptCache)中第一存储单元对应的第一存储限值,以及设置第三存储区域(CacheStorage)中每个第二存储单元对应的第二存储限值。
图10为本申请一些实施例提供的存储区域设置页面10的示意图一。控制器在为ServiceWorker分配相关联的存储器(例如磁盘)后,可以根据磁盘的存储大小和存储架构,控制器控制显示器在前端显示存储区域设置页面10,参见图10,存储区域设置页面10可以包括第一提示信息101、第一存储区域配置控件102、第二存储区域配置控件103和第三存储区域配置控件104。
在一些实施例中,第一提示信息101可用于提示磁盘大小等内容,并提示用户自定义配置磁盘内每个存储区域的大小。参见图10,第一提示信息101示例为“浏览器支持ServiceWorker,已注册ServiceWorker的网站可缓存数据到磁盘内,实现网站离线或加速显示,请配置磁盘内的存储区域,磁盘空间为500M”。
在一些实施例中,第一存储区域配置控件102用于配置第一存储区域(Database)的大小。参见图10,第一存储区域配置控件102的邻近位置可以显示第一使用说明信息102a,第一使用说明信息102a用于提示配置第一存储区域(Database)的大小,提示第一存储区域(Database)用于缓存网站的标识、网址、访问次数、最后访问时间等元数据,还可提示单个网站元数据的存储占用通常较小(例如参考值为10k),以便给用户配置第一存储区域(Database)提供参考。这样,用户可以通过第一存储区域配置控件102,自定义设置第一存储区域(Database)在磁盘内使用的空间大小。第一存储区域配置控件102的模式不限定,例如可以为手动输入模式,或者是通过弹出列表以向用户提供选项等。
在一些实施例中,第二存储区域配置控件103用于配置第二存储区域(ScriptCache)的大小。参见图10,第二存储区域配置控件103的邻近位置可以显示第二使用说明信息103a,第二使用说明信息103a用于提示配置第二存储区域(ScriptCache)的大小,提示第二存储区域(ScriptCache)用于缓存已注册ServiceWorker的网站的sw.js,还可提示单个网站sw.js的存储占用通常较小(例如几十k到几百k),以便给用户配置第二存储区域(ScriptCache)提供参考。这样,用户可以通过第二存储区域配置控件103,自定义设置第二存储区域(ScriptCache)在磁盘内使用的空间大小。第二存储区域配置控件103的模式不限定,例如可以为手动输入模式,或者是通过弹出列表以向用户提供选项等。
在一些实施例中,第三存储区域配置控件104用于配置第三存储区域(CacheStorage)的大小。参见图10,第三存储区域配置控件104的邻近位置可以显示第三使用说明信息104a,第三使用说明信息104a用于提示配置第三存储区域(CacheStorage)的大小,提示第三存储区域(CacheStorage)用于缓存已注册ServiceWorker的网站的html、css和媒体等资源数据,还可提示网站资源数据的存储占用通常较大(例如几十兆到几百兆),以便给用户配置第三存储区域(CacheStorage)提供参考。这样,用户可以通过第三存储区域配置控件104,自定义设置第三存储区域(CacheStorage)在磁盘内使用的空间大小。第三存储区域配置控件104的模式不限定,例如可以为手动输入模式,或者是通过弹出列表以向用户提供选项等。
图11为本申请一些实施例提供的存储区域设置页面10的示意图二。在图10实施例的基础上,参见图11,存储区域设置页面10还包括第二存储单元配置控件105,第二存储单元配置控件105用于配置第三存储区域(CacheStorage)中第二存储单元对应的第二存储限值,从而限制单独网站的资源数据的存储上限。这样,用户可以通过第二存储单元配置控件105,自定义设置第三存储区域(CacheStorage)中每块第二存储单元的存储上限,该实施例中各第二存储单元被配置相同的第二存储限值。第二存储单元配置控件105的模式不限定,例如可以为手动输入模式,或者是通过弹出列表以向用户提供选项等。通过在前端显示上述交互页面,为用户提供自定义配置磁盘内存储区域的权限,交互页面的设计不限于本申请实施例。
在一些实施例中,基于上述存储器的存储架构以及各存储区域的存储结构,控制器可以制定ServiceWorker的存储管理策略。
在一些实施例中,媒体数据的数据量通常较大(例如几兆~几百兆),是磁盘存储开销的重头。ServiceWorker的存储管理策略之一被配置为:参照图9,在任意一个第二存储单元的数据储量Storagej不小于第二存储限值Y2时,表明该第二存储单元已经存储饱和,无法存储更多的资源数据,则优先删除该第二存储单元中存储的媒体数据,以释放被媒体数据占用的存储空间,其中j表示第二存储单元的序号,1≤j≤N,N表示第二存储区域(ScriptCache)包括的第二存储单元的总数,Storagej表示第j个第二存储单元的数据储量。在资源数据中,HTML、CSS等资源包含的信息量大且占用存储空间小,媒体数据包含的信息量小且占用存储空间大,因此第二存储单元在不小于存储上限时优先删除所缓存的媒体数据,可以更快地释放较多的缓存,优先保证其他资源数据能够被完整存入第二存储单元。
在一些实施例中,在浏览器启动较多ServiceWorker网站时,多个网站会竞争磁盘存储空间,一旦磁盘整体或者磁盘中任一块存储区域不小于存储上限,会导致新网站的sw.js、资源数据等无法存入磁盘相应的存储区域内,则浏览器可以选择性地删除一些网站的缓存数据。
在一些实施例中,浏览器可以根据第一存储区域(Database),获取第一网站集合,第一网站集合包括第一存储区域(Database)中在先已注册ServiceWorker的M个网站(简称:ServiceWorker网站)的网站标识。
在一些实施例中,浏览器在获取到第一网站集合后,根据第一网站集合中M个网站标识映射的元数据,计算M个ServiceWorker网站的存储权重,存储权重用于使浏览器评估M个ServiceWorker网站占用磁盘的优先级。
在一些实施例中,对于任一已注册ServiceWorker的网站A,存储权重越大,网站A的优先级越高,表明网站A可以越优先占用磁盘空间,则在磁盘空间不足时不会优先考虑删除网站A的缓存数据;存储权重越小,网站A的优先级越低,则在磁盘不小于存储上限时越优先删除网站A的缓存数据。这样,浏览器可以根据存储权重做出磁盘清理决策,例如按照存储权重由低到高的顺序删除ServiceWorker网站的缓存数据。
在一些实施例中,在浏览器启动过多ServiceWorker网站时,多个网站会竞争磁盘存储空间,磁盘存储开销增大,容易使磁盘不小于存储上限,考虑到网站的资源数据为存储开销的重头,浏览器可以令第三存储区域(CacheStorage)部分存储或者暂不存储ServiceWorker网站的资源数据,一旦第二存储区域(ScriptCache)无法完整存储最新网站E的sw.js(网站E会注册失败),即第一存储单元的数据储量已达第一存储限值时,浏览器获取第一网站集合,第一网站集合包括在先已注册ServiceWorker的网站的网站标识,第一网站集合不包括网站E的网站标识。然后,浏览器计算第一网站集合中M个ServiceWorker网站的存储权重Weighti,其中i表示ServiceWorker网站的序号,1≤i≤M,然后对M个存储权重Weighti按照取值进行排序,按照存储权重从低到高的优先级顺序,依序删除第一存储单元中缓存的网站sw.js,直至第一存储单元的数据储量降至小于第一存储限值。
图12为本申请一些实施例提供的第二存储区域(ScriptCache)更新前后的示意图。参见图12,更新前的第二存储区域(ScriptCache)的第一存储单元包括网站A、网站B、网站C和网站D的sw.js文件,浏览器打开最新的网站E时,第一存储单元无法完整存储网站E的sw.js,此时第一存储单元的数据储量S1不小于第一存储限值Y1,浏览器获取的第一网站集合为{网站A标识,网站B标识,网站C标识,网站D标识},计算网站A的存储权重为Weight1,网站B的存储权重为Weight2,网站C的存储权重为Weight3,网站D的存储权重为Weight4,并且Weight1>Weight3>Weight4>Weight2,则优先删除存储权重最低(Weight2)的网站B的sw.js,并比较第一存储单元更新后的数据储量是否小于第一存储限值。
在一些实施例中,如果删除网站B的sw.js后,第一存储单元的数据储量仍超过第一存储限值,则继续删除下一存储权重较低(Weight4)的网站D的sw.js,以此类推,直至第一存储单元的数据储量小于第一存储限值,以使第一存储单元具有可用的存储空间。
在一些实施例中,假设删除网站B的sw.js后,第一存储单元的数据储量S1小于第一存储限值Y1,则浏览器获取网站E的sw.js的数据量D1,如果D1≤Y1-S1,表明网站E的sw.js能够被完整存储到第一存储单元,则浏览器将网站E的sw.js存入第一存储单元,参见图12,更新后的第一存储单元包括网站A、网站C、网站D和网站E的sw.js文件。如果D1>Y1-S1,浏览器继续删除下一存储权重较低(Weight4)的网站D的sw.js,以此类推,直至D1≤Y1-S1,将网站E的sw.js存入第一存储单元。
在一些实施例中,浏览器在打开最新的网站E时,如果第二存储区域(ScriptCache)能够完整存储最新网站E的sw.js(网站E注册成功),则在第三存储区域(CacheStorage)创建网站E映射的第二存储单元e,并在第二存储单元e中缓存网站E的资源数据。浏览器计算第三存储区域(CacheStorage)整体的数据储量S2,S2=SUM{Storagej,1≤j≤N},其中SUM表示求和运算,j表示第二存储单元的序号,N表示第二存储区域(ScriptCache)包括的第二存储单元的总数,Storagej表示第j个第二存储单元的数据储量。
在一些实施例中,如果第三存储区域(CacheStorage)的数据储量S2不小于存储上限X,第三存储区域(CacheStorage)无法继续存储后续的网站资源数据,则浏览器获取第一网站集合,第一网站集合包括在先已注册ServiceWorker的网站的网站标识,第一网站集合包括网站E(已注册成功)的网站标识。然后,浏览器计算第一网站集合中M个ServiceWorker网站的存储权重Weighti,对M个存储权重Weighti按照取值进行排序,按照存储权重从低到高的优先级顺序,依序删除第三存储区域(CacheStorage)中第二存储单元缓存的资源数据,直至第三存储区域(CacheStorage)的数据储量S2小于存储上限X,以使第三存储区域(CacheStorage)具有可用空间能存储更多的网站资源数据。
在一些实施例中,浏览器在按照存储权重从低到高的优先级顺序,依序删除第三存储区域(CacheStorage)中第二存储单元缓存的资源数据时,可以优先删除第二存储单元存储的资源数据中的媒体数据。
图13为本申请一些实施例提供的第三存储区域(CacheStorage)更新示意图一。参见图13,更新前的第三存储区域(CacheStorage)包括:第二存储单元a(映射网站A)、第二存储单元b(映射网站B)、第二存储单元c(映射网站C)、第二存储单元d(映射网站D)和第二存储单元e(映射网站E)。
在一些实施例中,如果第三存储区域(CacheStorage)的数据储量S2不小于存储上限X,则浏览器获取的第一网站集合为{网站A标识,网站B标识,网站C标识,网站D标识,网站E标识},计算网站A的存储权重为Weight1,网站B的存储权重为Weight2,网站C的存储权重为Weight3,网站D的存储权重为Weight4,网站E的存储权重为Weight5,并且Weight4>Weight2>Weight5>Weight1>Weight3,则参见图13,浏览器优先删除第二存储单元c(映射存储权重最低(Weight3)的网站C)中的媒体数据,并判断第三存储区域(CacheStorage)更新后的数据储量S2是否小于第一存储限值。
在一些实施例中,如果删除第二存储单元c缓存的媒体数据后,第三存储区域(CacheStorage)的数据储量S2小于存储上限X,则将新获取的网站资源数据存入第三存储区域(CacheStorage)中目标的第二存储单元内。
在一些实施例中,如果删除第二存储单元c缓存的媒体数据后,第三存储区域(CacheStorage)的数据储量S2仍然不小于存储上限X,参照图13,可以继续删除第二存储单元a(映射下一存储权重较低(Weight1)的网站A)中的媒体数据,以此类推,直至第三存储区域(CacheStorage)的数据储量S2小于第一存储限值。该实施例中在清理第三存储区域(CacheStorage)时,优先删除第二存储单元中缓存的媒体数据。
图14为本申请一些实施例提供的第三存储区域(CacheStorage)更新示意图二。参见图14,与图13实施例的区别在于:
如果删除第二存储单元c缓存的媒体数据后,第三存储区域(CacheStorage)的数据储量S2仍然不小于存储上限X,则继续删除第二存储单元c缓存的其他资源数据(例如html、css等),在清空第二存储单元c后,浏览器可以将第二存储单元c从第三存储区域(CacheStorage)中删除。
在一些实施例中,在清空第二存储单元c后,浏览器也可以不删除第二存储单元c,即将第二存储单元c留存在第三存储区域(CacheStorage)内,只是第二存储单元c已被清空,不占用第三存储区域(CacheStorage)的缓存空间。
如果删除第二存储单元c后,第三存储区域(CacheStorage)的数据储量S2仍然不小于存储上限X,则继续删除第二存储单元a的媒体数据。
如果删除第二存储单元c缓存的媒体数据后,第三存储区域(CacheStorage)的数据储量S2仍然不小于存储上限X,则继续删除第二存储单元a缓存的其他资源数据(例如html、css等),在清空第二存储单元a后,浏览器可以将第二存储单元a从第三存储区域(CacheStorage)中删除,以此类推,直至第三存储区域(CacheStorage)的数据储量S2小于存储上限X。
本申请实施例中的存储权重的计算方式不限定。在一些实施例中,浏览器可以根据用户历史观看行为,分析用户浏览网页的兴趣偏好,这样浏览器在获取第一网站集合后,根据M个ServiceWorker网站被标记的标签,计算每个ServiceWorker网站与用户兴趣偏好之间的匹配度(或相似度),并根据该匹配度(或相似度)计算M个ServiceWorker网站的存储权重,优先删除不符合用户兴趣偏好的网站资源数据。
在一些实施例中,网站标签可以包含网站的作用和内容等属性,例如网站标签为“检索网站”、“知识库网站”、“影视网站”、“游戏网站”、“翻译网站”、“百科网站”等。网站标签可以由网站运营商标记并保存在元数据中;或者,某些网站标签可以包含在网址中,例如YYgame.com,浏览器通过解析该网址,可以得到网站标签为“游戏网站”;又或者,网站标签是由浏览器从网站资源数据中提取的关键内容(例如至少一个关键词等)。
在一些实施例中,浏览器可以根据元数据中包括的网站的访问次数、最后访问时间和网站已占用内存等参量中的任意一个,来计算M个ServiceWorker网站的存储权重。例如,访问次数可以在一定程度上反映用户对网站的使用频率和兴趣偏好,这样访问次数越多的网站可以被分配相对越高的存储权重;又例如,最后访问时间可以反映一个网站被访问的新旧程度,如果网站A的最后访问时间较为久远,表明用户大概率不经常访问网站A,因此浏览器可以为最后访问时间距离当前时间越近的网站分配相对越高的存储权重;又例如,网站B的已占用内存越多,就会挤压其他网站对磁盘的使用空间,因此已占用内存越多的网站可以被分配相对较低的存储权重,从而优先释放占用内存较多的网站的一些数据。
在一些实施例中,浏览器可以根据元数据中包括的网站的访问次数、最后访问时间和网站已占用内存等参量中的多项组合,来计算M个ServiceWorker网站的存储权重。例如,使用访问次数和最后访问时间时,可以为“访问次数”参量设置权重系数a,为“最后访问时间”参量设置权重系数b,权重系数a和权重系数b可以根据不同的评估标准而定,例如若认为最重要的参量是访问次数,其次重要的参量是最后访问时间,则可以设置权重系数a大于权重系数b。这样,浏览器可以根据每个参量量化的数值和权重系数,计算存储权重。第一网站集合和存储权重不是一成不变的,可以根据用户使用浏览器的情况进行更新。
本申请实施例中提供的浏览器存储资源管理方法及显示设备,具备如下优势:
(一)、对于存储受限较大的显示设备,ServiceWorker可以对多个网站的数据按类别分区存储,这样在磁盘空间不足时,可以按照数据优先级,或者按照预设策略,或者按需选择删除哪个存储区域中的数据,降低存储器的存储占用,实现对多个网站ServiceWorker的动态精准存储管理。
(二)、网站相关数据都是经过筛选后存储的,除元数据、sw.js和资源数据之外的无用数据不被保存到存储器,节省存储器的存储资源,并且实现存储粒度从原来的单个网站级别提升到每个网站的单个资源级别。
(三)、对于存储受限较高的显示设备(例如电视),可通过ServiceWorker API以较小的存储空间代价,提高用户体验。例如,网站的sw.js通常数据量较小,通过第二存储区域(ScriptCache)单独存储和更新各网站的sw.js,可以减少浏览器访问ServiceWorker网站时的注册过程,减少注册等待时间。
(四)、根据磁盘中各存储区域的优先级,实现磁盘读写的有序进行,基于上述存储架构制定磁盘缓存清理策略,及时删除被占用或不被使用的网站数据,使更多的网站可以注册及安装ServiceWorker,减少注册流程。
(五)、通过第一存储区域(Database)存储的已注册ServiceWorker的网站的元数据,通过网站标识,可以快速判断网站在先是否已注册ServiceWorker,从而决策下一步是访问本地磁盘或是通过网络请求网站资源数据,从而提高网站的访问速度。
(六)、为已注册及安装ServiceWorker的网站设置存储权重,这样在磁盘或存储区域达到或超过存储上限时,基于存储权重的高低,判断优先删除哪个或哪些网站的数据,实现网站数据的更新迭代,提高网站资源的新鲜度。
需要说明的是,存储权重的计算方法,以及磁盘中ServiceWorker网站数据的缓存清理机制都不局限于本申请实施例。浏览器网页、浏览器与用户的交互界面等内容可以根据使用情况酌情设计。另外,与ServiceWorker有关的其他内容可以适应性参照相关技术,本申请实施例不做赘述。本申请适用于可运行浏览器的不同类型的显示设备,包括但不限于智能电视、智能终端(例如手机、平板电脑)等。
本申请一些实施例还提供一种计算机存储介质,该计算机存储介质可存储有程序。当计算机存储介质配置在显示设备200时,该程序执行时可包括以上实施例中显示设备200配置的浏览器存储资源管理方法涉及的程序步骤。其中,计算机存储介质可为磁碟、光盘、只读存储记忆体(英文:Read-Only Memory,简称ROM)或随机存储记忆体(英文:RandomAccess Memory,简称RAM)等。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
为了方便解释,已经结合具体的实施方式进行了上述说明。但是,上述示例性的讨论不是意图穷尽或者将实施方式限定到上述公开的具体形式。根据上述的教导,可以得到多种修改和变形。上述实施方式的选择和描述是为了更好的解释本公开的内容,从而使得本领域技术人员更好的使用所述实施方式。
Claims (10)
1.一种显示设备,其特征在于,包括:
存储器,包括第一存储区域、第二存储区域和第三存储区域;
通信器,用于与服务器通信连接;
控制器,被配置为:
在浏览器启动目标网站时,如果所述目标网站在先未注册服务工作者,则控制浏览器为所述目标网站注册及安装服务工作者;
在所述目标网站注册及安装服务工作者后,控制浏览器将所述目标网站的元数据存入所述第一存储区域,所述元数据包括所述目标网站的第一网站标识;
控制浏览器将所述目标网站已注册的服务工作者的脚本数据存入所述第二存储区域;
控制浏览器向服务器请求加载所述目标网站的资源数据,以及将所述目标网站的资源数据存入所述第三存储区域。
2.根据权利要求1所述的显示设备,其特征在于,所述控制器还被配置为:
在启动所述目标网站时,访问所述第一存储区域;
如果从所述第一存储区域未读取到所述第一网站标识,确定所述目标网站在先未注册服务工作者;
如果从所述第一存储区域读取到所述第一网站标识,确定所述目标网站在先已注册服务工作者。
3.根据权利要求2所述的显示设备,其特征在于,所述显示设备还包括显示器,则在确定所述目标网站在先已注册服务工作者之后,所述控制器还被配置为:
控制浏览器向服务器请求所述目标网站已注册的服务工作者的第二脚本数据;
继续访问所述第二存储区域,获取所述第二存储区域在先已存储的所述目标网站注册的服务工作者的第一脚本数据;
如果所述第一脚本数据和所述第二脚本数据不同,则利用所述第二脚本数据更新所述第二存储区域存储的所述目标网站注册的服务工作者的脚本数据;
继续访问所述第三存储区域,获取所述第三存储区域在先已存储的所述目标网站的第二资源数据,利用所述第二资源数据生成目标页面,并控制所述显示器显示所述目标页面。
4.根据权利要求1所述的显示设备,其特征在于,所述第二存储区域包括第一存储单元,所述第一存储单元被设置对应的第一存储限值,所述第一存储单元用于集中存储多个网站已注册的服务工作者的脚本数据。
5.根据权利要求1所述的显示设备,其特征在于,所述第三存储区域包括至少一个第二存储单元,所述第二存储单元被设置对应的第二存储限值,所述第二存储单元用于存储一个网站的资源数据,所述资源数据包括网站的HTML数据、层叠样式表数据和媒体数据。
6.根据权利要求5所述的显示设备,其特征在于,所述控制器还被配置为:
在所述第二存储单元的数据储量不小于所述第二存储限值时,优先删除所述第二存储单元中存储的媒体数据,以释放被媒体数据占用的存储空间。
7.根据权利要求4所述的显示设备,其特征在于,所述元数据还包括网站的网址、访问次数、最后访问时间和网站已占用内存,则所述控制器还被配置为:
在所述第一存储单元的数据储量不小于所述第一存储限值时,根据所述第一存储区域存储的M个网站的所述元数据,分别计算M个网站对应的存储权重;
按照存储权重从低到高的优先级顺序,删除所述第一存储单元中存储的网站的脚本数据,使所述第一存储单元的数据储量降至小于所述第一存储限值。
8.根据权利要求5所述的显示设备,其特征在于,所述元数据还包括网站的网址、访问次数、最后访问时间和网站已占用内存,则所述控制器还被配置为:
在所述第三存储区域的数据储量不小于存储上限时,根据所述第一存储区域存储的M个网站的所述元数据,分别计算M个网站对应的存储权重;
按照存储权重从低到高的优先级顺序,删除所述第三存储区域中所述第二存储单元存储的资源数据,使所述第三存储区域的数据储量降至小于所述存储上限。
9.根据权利要求7或8所述的显示设备,其特征在于,所述控制器还被配置为:
在启动所述目标网站时,访问所述第一存储区域;
如果从所述第一存储区域读取到所述第一网站标识,更新所述第一存储区域存储的所述目标网站的所述元数据。
10.一种浏览器存储资源管理方法,其特征在于,所述方法包括:
在浏览器启动目标网站时,如果所述目标网站在先未注册服务工作者,则控制浏览器为所述目标网站注册及安装服务工作者;
在所述目标网站注册及安装服务工作者后,控制浏览器将所述目标网站的元数据存入存储器中的第一存储区域,所述元数据包括所述目标网站的第一网站标识;
控制浏览器将所述目标网站已注册的服务工作者的脚本数据存入所述存储器中的第二存储区域;
控制浏览器向服务器请求加载所述目标网站的资源数据,以及将所述目标网站的资源数据存入所述存储器中的第三存储区域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311700285.5A CN117892024A (zh) | 2023-12-12 | 2023-12-12 | 一种浏览器存储资源管理方法及显示设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311700285.5A CN117892024A (zh) | 2023-12-12 | 2023-12-12 | 一种浏览器存储资源管理方法及显示设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117892024A true CN117892024A (zh) | 2024-04-16 |
Family
ID=90649892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311700285.5A Pending CN117892024A (zh) | 2023-12-12 | 2023-12-12 | 一种浏览器存储资源管理方法及显示设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117892024A (zh) |
-
2023
- 2023-12-12 CN CN202311700285.5A patent/CN117892024A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11044949B2 (en) | Systems and methods for dynamic delivery of web content | |
JP7013466B2 (ja) | アプリケーションデータ処理方法、装置、及びコンピュータプログラム | |
US9372885B2 (en) | System and methods thereof for dynamically updating the contents of a folder on a device | |
JP5335083B2 (ja) | ブラウザにおける新しいタブページおよびブックマークツールバー | |
US20210260475A1 (en) | Management of provisioning of video game during game preview | |
CN111372115B (zh) | 应用程序的访问方法及装置、通讯系统 | |
CN109684573B (zh) | 目标图片显示方法及装置、存储介质、电子设备 | |
JP6230405B2 (ja) | 車載端末、コンテンツ表示システム、コンテンツ表示方法、およびWebブラウザ | |
CN113507646A (zh) | 一种显示设备及浏览器多标签页媒资播放方法 | |
US20130227442A1 (en) | Remote controller supporting system and method for displaying function of key being mapped with remote controller | |
US20240095298A1 (en) | Systems and methods for rendering interactive web pages | |
JP2022524670A (ja) | アプレットマテリアル処理方法、装置、電子デバイス、コンピュータ可読記憶媒体およびコンピュータプログラム | |
KR20160019526A (ko) | 그래픽 동작들 통합 | |
CN117892024A (zh) | 一种浏览器存储资源管理方法及显示设备 | |
CN112005217A (zh) | 服务于请求的独立线程api调用 | |
CN110622135B (zh) | 在涉及欠佳网络条件的情形下提供内容项的系统和方法 | |
US10845953B1 (en) | Identifying actionable content for navigation | |
US11604577B1 (en) | Modifying scrolling behavior with competing constraint priorities in landscape and portrait modes | |
CN113612822B (zh) | 显示设备及自适应内存的网络资源下载方法 | |
US11900110B2 (en) | Increasing user interaction with deep learning agent | |
WO2014062209A1 (en) | System and methods thereof for dynamically updating the contents of a folder on a device | |
KR20170073538A (ko) | 웹 컨텐츠를 저장하기 위한 방법 및 장치 | |
CN110147510B (zh) | 提取视口内容、根据视口内容的自动交互的方法及装置 | |
US20240111410A1 (en) | Drag and drop interactions for a browser software application | |
CN118277652A (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 |