一种浏览器的缓存方法及装置的制造方法
【技术领域】
[0001]本发明属于计算机技术领域,尤其涉及一种浏览器的缓存方法及装置。
【背景技术】
[0002]浏览器的缓存机制,是由浏览器在本地磁盘上对其最近请求过的网页进行存储,当浏览器再次请求访问同一页面时,就可以直接从本地磁盘中加载并显示该网页,从而达到节约网络资源,提高网页访问速度的目的。
[0003]目前,对于网页中的每一个网页元素,浏览器均将其保存为一个单独的文件,因此,在进行缓存页面的加载时,对网页中每个网页元素的读取都需要经过一次文件的读写操作,从而影响了网页访问的速度。
【发明内容】
[0004]本发明实施例的目的在于提供一种浏览器的缓存方法,旨在解决目前浏览器的缓存机制容易导致网页访问速度受限的问题。
[0005]本发明实施例是这样实现的,一种浏览器的缓存方法,包括:
[0006]本发明实施例的另一目的在于提供一种浏览器的缓存方法,包括:
[0007]将N个网页元素保存在同一磁盘文件中,所述N为大于O的整数;
[0008]将所述N个网页元素的缓存信息保存进所述磁盘文件中,所述缓存信息包括所述网页元素的唯一标识和所述网页元素在所述磁盘文件中的存储位置;
[0009]对所述磁盘文件进行内存映射;
[0010]通过内存读写的方式,根据所述网页元素的缓存信息读取并加载所述网页元素。
[0011]本发明实施例的另一目的在于提供一种浏览器的缓存装置,包括:
[0012]第一缓存单元,用于将N个网页元素保存在同一磁盘文件中,所述N为大于O的整数;
[0013]第二缓存单元,用于将所述N个网页元素的缓存信息保存进所述磁盘文件中,所述缓存信息包括所述网页元素的唯一标识和所述网页元素在所述磁盘文件中的存储位置;
[0014]内存映射单元,用于对所述磁盘文件进行内存映射;
[0015]缓存读取单元,用于通过内存读写的方式,根据所述网页元素的缓存信息读取并加载所述网页元素。
[0016]在本发明实施例中,将需要进行缓存的多个网页元素集中存储在一个磁盘文件中,并对该磁盘文件进行内存映射,以通过内存读取的方式实现对缓存内容的快速读取,从而加快了浏览器对缓存网页的加载速度,提高了浏览器的网页访问效率。
【附图说明】
[0017]图1是本发明实施例提供的浏览器的缓存方法的实现流程图;
[0018]图2是本发明实施例提供的浏览器的缓存方法S102的具体实现流程图;
[0019]图3是本发明实施例提供的浏览器的缓存方法磁盘文件数据格式的示意图;
[0020]图4是本发明实施例提供的浏览器的缓存方法SlOl的具体实现流程图;
[0021]图5是本发明实施例提供的浏览器的缓存装置的结构框图。
【具体实施方式】
[0022]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0023]在本发明实施例中,将需要进行缓存的多个网页元素集中存储在一个磁盘文件中,并对该磁盘文件进行内存映射,以通过内存读取的方式实现对缓存内容的快速读取,从而加快了浏览器对缓存网页的加载速度,提高了浏览器的网页访问效率。
[0024]图1示出了本发明实施例提供的浏览器的缓存方法的实现流程,详述如下:
[0025]在SlOl中,将N个网页元素保存在同一磁盘文件中,所述N为大于O的整数。
[0026]在浏览器对其当前访问的网页进行缓存时,其需要对该网页上的所有内容一一进行缓存,以在下一次访问该网页时,再从本地一一加载这些缓存的内容,渲染到浏览器界面中。其中,所述网页元素,即为进行缓存的网页中的相关内容,包括但不限于文字、图片、动画文件、输入框、按键、单选框、下拉列表,等等。
[0027]在本实施例中,摒弃了将每一个网页元素保存为一个磁盘文件的方式,而是同时将N个网页元素保存在同一个磁盘文件中,每个网页元素的相关内容占据该磁盘文件对应的磁盘空间中的一段存储空间。
[0028]在S102中,将所述N个网页元素的缓存信息保存进所述磁盘文件中,所述缓存信息包括所述网页元素的唯一标识和所述网页元素在所述磁盘文件中的存储位置。
[0029]在本实施例中,除了将这N个网页元素保存在同一磁盘文件中,在该磁盘文件中还需要保存这N个网页元素的缓存信息,这些缓存信息能够被浏览器用于在后续的网页加载过程中对缓存内容进行查找、读取或者删除。
[0030]其中,所述缓存信息,包括网页元素的唯一标识,该唯一标识作为网页元素的索弓丨,能够使得浏览器在磁盘文件的相应存储位置上找到并读取该网页元素。每个网页元素的标识需要能够区别于其他的网页元素,作为本发明的一个实施例,可以计算网页元素的地址(即网页元素的统一资源定位符(Uniform Resource Locator, URL))的哈希值,并将计算出的哈希值作为该网页元素的唯一标识,由于每个网页元素的地址是唯一的,因此,根据网页元素的地址计算出的哈希值也能够唯一标识该网页元素。
[0031]同时,所述缓存信息还必须包括网页元素在磁盘文件中的存储位置,在此,一个网页元素在磁盘文件中的存储位置必须和该网页元素的唯一标识相关联,即,浏览器只需要获取到一个网页元素的唯一标识,即可以根据关联关系获取到该网页元素在磁盘文件中的存储位置,从而进一步在该磁盘文件中找到该网页元素。
[0032]作为本发明的一个实施例,所述网页元素在所述磁盘文件中的存储位置包括:
[0033]所述网页元素在所述磁盘文件中存储的起始地址和结束地址。
[0034]在本实施例中,浏览器通过网页元素的唯一标识在磁盘文件中寻址到网页元素的缓存信息,以获取到该网页元素在磁盘文件中存储的起始地址和结束地址,由此,从获取到的起始地址开始读取数据内容,直至读取到相应的结束地址为止,从而成功取出该网页元素的数据内容。
[0035]作为本发明的另一实施例,所述网页元素的缓存信息还可以包括所述网页元素的数据长度,那么,相应地,
[0036]所述网页元素在所述磁盘文件中的存储位置包括:
[0037]所述网页元素在所述磁盘文件中存储的起始地址。
[0038]在本实施例中,浏览器通过网页元素的唯一标识在磁盘文件中寻址到网页元素的缓存信息,以获取到该网页元素在磁盘文件中存储的起始地址和数据长度,由此,从获取到的起始地址开始读取数据内容,直至读取出相应的数据长度的数据内容,从而成功取出该网页元素的数据内容。
[0039]SlOl和S102实现了 N个网页元素及其缓存信息在同一个磁盘文件中的存储,而在具体的操作过程中,这N个网页元素及其缓存信息在同一磁盘文件中的存储方式可以有多种:
[0040]对于网页元素的存储方式来说,作为本发明的一个实施例,可以将所述N个网页元素依次连续地保存在磁盘文件中,即,这N个网页元素的数据之间首尾相连,且不同网页元素的数据之间不设置分隔标记,以此来减少对磁盘空间的开销。
[0041]对于网页元素的缓存信息的存储方式来说,作为本发明的一个实施例,如图2所示:
[0042]在S201中,在所述磁盘文件占据的磁盘空间中连续分配M个长度相同的存储单元,所述M为不小于N的整数。
[0043]在S202中,将所述N个网页元素的缓存信息分别保存进N个所述存储单元中。
[0044]在本实施例中,当连续分配的存储单元有M个时,则该磁盘文件能够对不超过M个网页元素进行缓存,且每个磁盘文件中能够存储的网页元素及其缓存信息的数量有上限,该上限可以根据浏览器的缓存大小来动态设定。
[0045]作为网页元素在磁盘文件中存储的一种具体实现,如图3所示,将磁盘文件所占据的磁盘空间分为连续的两部分,第一部分用于连续地存储N个网页元素的缓存信息,第二部分用于连续地存储N个网页元素的数据内容,且每个网页元素的缓存信息可以分为三项内容,第一项是网页元素的URL的哈希值,该哈希值采用32位整数标识;第二项是网页元素的数据长度,采用32位整数标识;第三项是网页元素在磁盘文件所占据的磁盘空间中的起始地址,也采用32位整数标识。也就是说,在上述实现示例中,每个网页元素的缓存信息所使用的磁盘开销是3个32位,一共96位,相当于12字节,浏览器可以首先根据网页元素的URL的哈希值查找到上述第一部分所在的32位存储单元,继续寻址到下一个32位存储单元存储的数据内容即为该网页元素的数据长度,而再下一个32位存储单元存储的数据内容即为该网页元素的起始地址。
[0046]在S103中,对所述磁盘文件进行内存映射。
[0047]在S104中,通过内存读写的方式,根据所述网页元素的缓存信息读取并加载所述网页元素。
[0048]在本实施例中,对磁盘文件进行内存映射之后,进程可以像访问普通内存一样对文件进行访问,不必再调用readO,writeO等文件读写操作,由此加快了网页元素的缓存
提取速度,提高了缓存网页的访问效率。
[0049]作为本发明的一个实施例,为了进一步加快对网页元素的读取速度,可以将所述网页元素的缓存信息以数组形式保存进所述磁盘文件中,由于数组采用顺序存储的方式,因此,一旦明确了数组的维数和各维的长度,建立起数组元素的下标和存储地址之间的对应关系,就可以由下标值随机地访问该数据中的任一元素,由此加快了对网页元素缓存信息的读取速度,进一步提高了对网页元素的读取速度。
[0050]基于本发明实施例中所阐述的浏览器的缓存方法,在对已缓存的网页元素进行删除时,也可以根据该网页元素的唯一标识,在磁盘文件中寻址到该网页元素的缓存信息所在位置,并根据缓存信息所提供的内容进一步寻址到该网页元素的内容的所在位置,一并将该网页元素及其缓存信息删除即可。
[0051]由于对已缓存的网页元素的删除可能造成磁盘文件中的存储空间不连续,存在多段空闲存储空间,造成存储资源的浪费,因此,作为本发明的一个实施例,在SlOl中对网页元素进行保存时,如图4所示,具体可以为:
[0052]在S401中,顺序扫描所述磁盘文件中的空闲存储空间。
[0053]在S402中,当扫描到存在所述空闲存储空间且所述空间存储空间的容量大于当前进行存储的所述网页元素的数据长度时,将该网页元素存储进该空闲存储空间中。
[0054]通过上述扫描逻辑,一旦发现磁盘文件中存在一个容量大于当前进行存储的网页元素的数据长度的空闲存储空间时,则直接将该网页元素存储进该空闲存储空间,从而尽量避免因为网页元素删除而带来的存储资源的浪费。
[0055]图5示出了浏览器的缓存装置的结构框图,该装置可以位于浏览器的相关软硬件模块中,用于运行本发明图1至图4实施例所述的浏览器的缓存方法。为了便于说明,仅示出了与本实施例相关的部分。
[0056]参照图5,该装置包括:
[0057]第一缓存单元51,将N个网页元素保存在同一磁盘文件中,所述N为大于O的整数。
[0058]第二缓存单元52,将所述N个网页元素的缓存信息保存进所述磁盘文件中,所述缓存信息包括所述网页元素的唯一标识和所述网页元素在所述磁盘文件中的存储位置。
[0059]内存映射单元53,对所述磁盘文件进行内存映射。
[0060]缓存读取单元54,通过内存读写的方式,根据所述网页元素的缓存信息读取并加载所述网页元素。
[0061]可选地,所述第一缓存单元51具体用于:
[0062]将所述N个网页元素依次连续地保存在所述磁盘文件中。
[0063]可选地,所述第二缓存单元52具体用于:
[0064]将所述N个网页元素的缓存信息依次连续地保存在所述磁盘文件中。
[0065]可选地,所述网页元素在所述磁盘文件中的存储位置包括:
[0066]所述网页元素在所述磁盘文件中存储的起始地址和结束地址。
[0067]可选地,所述网页元素的缓存信息还包括所述网页元素的数据长度,
[0068]所述网页元素在所述磁盘文件中的存储位置包括:
[0069]所述网页元素在所述磁盘文件中存储的起始地址。
[0070]可选地,所述网页元素的唯一标识包括所述网页元素的地址的哈希值。
[0071]可选地,所述第二缓存单元52具体用于:
[0072]将所述网页元素的缓存信息以数组形式保存进所述磁盘文件中。
[0073]可选地,所述第一缓存单元51包括:
[0074]扫描子单元,顺序扫描所述磁盘文件中的空闲存储空间。
[0075]缓存子单元,当扫描到存在所述空闲存储空间且所述空间存储空间的容量大于当前进行存储的所述网页元素的数据长度时,将该网页元素存储进该空闲存储空间中。
[0076]在本发明实施例中,将需要进行缓存的多个网页元素集中存储在一个磁盘文件中,并对该磁盘文件进行内存映射,以通过内存读取的方式实现对缓存内容的快速读取,从而加快了浏览器对缓存网页的加载速度,提高了浏览器的网页访问效率。
[0077]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种浏览器的缓存方法,其特征在于,包括: 将N个网页元素保存在同一磁盘文件中,所述N为大于O的整数; 将所述N个网页元素的缓存信息保存进所述磁盘文件中,所述缓存信息包括所述网页元素的唯一标识和所述网页元素在所述磁盘文件中的存储位置; 对所述磁盘文件进行内存映射; 通过内存读写的方式,根据所述网页元素的缓存信息读取并加载所述网页元素。2.如权利要求1所述的方法,其特征在于,所述将N个网页元素保存在同一磁盘文件中包括: 将所述N个网页元素依次连续地保存在所述磁盘文件中。3.如权利要求1所述的方法,其特征在于,所述将所述N个网页元素的缓存信息保存进所述磁盘文件中包括: 在所述磁盘文件占据的磁盘空间中连续分配M个长度相同的存储单元,所述M为不小于N的整数; 将所述N个网页元素的缓存信息分别保存进N个所述存储单元中。4.如权利要求1一 3任一项所述的方法,其特征在于,所述网页元素在所述磁盘文件中的存储位置包括: 所述网页元素在所述磁盘文件中存储的起始地址和结束地址。5.如权利要求1一 3任一项所述的方法,其特征在于,所述网页元素的缓存信息还包括所述网页元素的数据长度, 所述网页元素在所述磁盘文件中的存储位置包括: 所述网页元素在所述磁盘文件中存储的起始地址。6.如权利要求1所述的方法,其特征在于,所述网页元素的唯一标识包括所述网页元素的地址的哈希值。7.如权利要求1所述的方法,其特征在于,所述将所述网页元素的缓存信息保存进所述磁盘文件中包括: 将所述网页元素的缓存信息以数组形式保存进所述磁盘文件中。8.如权利要求1所述的方法,其特征在于,所述将N个网页元素保存在同一磁盘文件中包括: 顺序扫描所述磁盘文件中的空闲存储空间; 当扫描到存在所述空闲存储空间且所述空间存储空间的容量大于当前进行存储的所述网页元素的数据长度时,将该网页元素存储进该空闲存储空间中。9.一种浏览器的缓存装置,其特征在于,包括: 第一缓存单元,用于将N个网页元素保存在同一磁盘文件中,所述N为大于O的整数; 第二缓存单元,用于将所述N个网页元素的缓存信息保存进所述磁盘文件中,所述缓存信息包括所述网页元素的唯一标识和所述网页元素在所述磁盘文件中的存储位置; 内存映射单元,用于对所述磁盘文件进行内存映射; 缓存读取单元,用于通过内存读写的方式,根据所述网页元素的缓存信息读取并加载所述网页元素。10.如权利要求9所述的装置,其特征在于,所述第一缓存单元具体用于: 将所述N个网页元素依次连续地保存在所述磁盘文件中。11.如权利要求9所述的装置,其特征在于,所述第二缓存单元包括: 分配子单元,用于在所述磁盘文件占据的磁盘空间中连续分配M个长度相同的存储单元,所述M为不小于N的整数; 第一缓存子单元,用于将所述N个网页元素的缓存信息分别保存进N个所述存储单元中。12.如权利要求9一 11任一项所述的装置,其特征在于,所述网页元素在所述磁盘文件中的存储位置包括: 所述网页元素在所述磁盘文件中存储的起始地址和结束地址。13.如权利要求9一 11任一项所述的装置,其特征在于,所述网页元素的缓存信息还包括所述网页元素的数据长度, 所述网页元素在所述磁盘文件中的存储位置包括: 所述网页元素在所述磁盘文件中存储的起始地址。14.如权利要求9所述的装置,其特征在于,所述网页元素的唯一标识包括所述网页元素的地址的哈希值。15.如权利要求9所述的装置,其特征在于,所述第二缓存单元具体用于: 将所述网页元素的缓存信息以数组形式保存进所述磁盘文件中。16.如权利要求9所述的装置,其特征在于,所述第一缓存单元包括: 扫描子单元,用于顺序扫描所述磁盘文件中的空闲存储空间; 第二缓存子单元,用于当扫描到存在所述空闲存储空间且所述空间存储空间的容量大于当前进行存储的所述网页元素的数据长度时,将该网页元素存储进该空闲存储空间中。
【专利摘要】本发明适用于浏览器技术领域,提供了一种浏览器的缓存方法及装置,包括:将N个网页元素保存在同一磁盘文件中,所述N为大于0的整数;将所述N个网页元素的缓存信息保存进所述磁盘文件中,所述缓存信息包括所述网页元素的唯一标识和所述网页元素在所述磁盘文件中的存储位置;对所述磁盘文件进行内存映射;通过内存读写的方式,根据所述网页元素的缓存信息读取并加载所述网页元素。在本发明中,将需要进行缓存的多个网页元素集中存储在一个磁盘文件中,并对该磁盘文件进行内存映射,以通过内存读取的方式实现对缓存内容的快速读取,从而加快了浏览器对缓存网页的加载速度,提高了浏览器的网页访问效率。
【IPC分类】G06F17/30, G06F12/08
【公开号】CN104899208
【申请号】CN201410078675
【发明人】牛东升
【申请人】腾讯科技(深圳)有限公司
【公开日】2015年9月9日
【申请日】2014年3月5日