一种浏览器缓存方法和装置的制造方法_3

文档序号:9375668阅读:来源:国知局
另外,由于内容页可以全部进行缓存,这样就可以全页面缓存HTML对象、CSS对象、JS对象、图片,并没有缓存上限。
[0087]在另一个是实例中,浏览器可以根据服务器返回的网页的版本号与缓存中的版本号不一致确定更新缓存的内容页。具体的,浏览器可以在执行设置延迟时间事件过程中,比较服务器返回的网页的版本号与缓存中的版本号是否一致,在不一致时,不读取缓存的内容页,而是在延迟时间到后向服务器发送对内容页的初始化请求,通过对内容页的初始化请求获取内容页,并加载和渲染所述内容页,之后缓存新的内容页覆盖本地原有的内容页。
[0088]那么,如果通过对内容页的初始化请求获取的内容页出现错误,缓存的内容页也将是个错误的页面,那么岂不会在每次重新打开网页时都会读取一个错误的内容页?为了解决这个问题,本发明实施例的浏览器还可以在获取到内容页时,在内容页的cookie中设置初始值(inited)为假(false),而在完全加载并缓存内容页后置inited为真(ture),这样,浏览器在读取本地缓存的内容页时,可以先读取inited,如果为ture,则能够读取缓存的内容页,如果为false,则不能读取缓存的内容页,需要在延迟时间到后向服务器发送对内容页的初始化请求,通过对内容页的初始化请求获取内容页。
[0089]本发明又一实施例实现一种浏览器缓存方法,在服务器侧,该方法主要包括:服务器在收到浏览器的第一页面请求时,向浏览器发送第一页面,在收到浏览器的对第二页面的初始化请求后,向浏览器发送第二页面。这里,所述第一页面可以称为框架页,包括网页属性、页面加载完成事件,其中,所述网页属性包括:css标签、JS标签等,其中,CSS标签一般是CSS外链请求,JS标签一般是JS外链请求;所述初始化请求包括页面初始化对象请求和静态资源请求;所述第二页面可以称为内容页,包括网页的HTML对象、和/或CSS对象、和/或JS对象、和/或图片等网页内容,其中,所述HTML对象可以是HTML文档,所述CSS对象可以是CSS文档,所述JS对象可以是JS文档。
[0090]为了实现上述方法,本发明还提供一种终端,如图7所示,该终端包括:浏览器71和存储器72 ;其中,浏览器71用于在首次打开网页时,获取第一页面,加载第一页面中网页属性后,触发页面加载完成事件,在页面加载完成事件中执行对第二页面的初始化请求;通过所述初始化请求获取第二页面,并缓存第二页面到存储器72 ;再次打开所述网页时,获取第一页面,加载第一页面中网页属性后,触发页面加载完成事件,读取存储器72中缓存的第二页面;存储器72用于缓存浏览器71获取的第二页面。
[0091]这里,所述第一页面可以称为框架页,包括网页属性、页面加载完成事件,其中,所述网页属性包括:CSS标签、JS标签等,所述页面加载完成事件一般为onload事件;所述初始化请求包括页面初始化对象请求和静态资源请求;所述第二页面可以称为内容页,包括网页的HTML对象、CSS对象、JS对象、图片等网页内容。
[0092]所述浏览器71还用于在触发页面加载完成事件后,执行设置延迟时间事件,在延迟时间内,在存储器72中查询是否有缓存的第二页面,在没有缓存的第二页面时,在延迟时间到后向服务器发送对第二页面的初始化请求。
[0093]在一个实施例中,所述浏览器71具体用于接收服务器返回的第一页面和网页的版本号,在获取到第二页面后,将所述版本号与对应的第二页面一起缓存到存储器72,再次打开所述网页时,在存储器查询是否有缓存的第二页面,有缓存的第二页面时,比较新接收的网页的版本号和存储器72缓存的版本号是否一致,在一致时,读取缓存的第二页面,在不一致时,不读取缓存的第二页面,在延迟时间到后向服务器发送对第二页面的初始化请求,之后缓存新的第二页面覆盖存储器中原有的第二页面。
[0094]另外,浏览器71还需要在获取到第二页面时,在第二页面的cookie中设置inited为假false,而在完全加载并缓存第二页面后设置inited为ture,这样,浏览器71在读取存储器72缓存的第二页面时,可以先读取inited,如果为ture,则能够读取缓存的第二页面,如果为false,则不能读取缓存的第二页面,需要在延迟时间到后向服务器发送对第二页面的初始化请求,通过所述初始化请求获取第二页面。
[0095]本发明还提供一种服务器,如图8所示,该服务器包括:第一页面发送模块81、第二页面发送模块82;其中,
[0096]第一页面发送模块81,可以由服务器的存储器和发送接口实现,在在收到浏览器的第一页面请求时,向浏览器发送第一页面;
[0097]第一页面发送模块82,也可以由服务器的存储器和发送接口实现,在收到浏览器的对第二页面的初始化请求后,向浏览器发送第二页面。
[0098]基于上述终端,本发明还实现一种浏览器缓存系统,如图9所示,该系统包括:终端91、服务器92 ;其中,终端91用于在首次打开网页时,通过服务器92获取第一页面,加载第一页面中网页属性后,触发页面加载完成事件,在页面加载完成事件中执行对第二页面的初始化请求;通过所述初始化请求从服务器92获取第二页面,并缓存第二页面到本地;再次打开所述网页时,获取第一页面,加载第一页面中网页属性后,触发页面加载完成事件,读取缓存的第二页面;服务器92在终端91首次打开网页时,向终端91发送第一页面,在收到终端91的对第二页面的初始化请求后,向终端92发送第二页面。
[0099]其中,所述终端92如图5所示,包括:浏览器71和存储器72 ;其中,浏览器71用于在首次打开网页时,获取第一页面,加载第一页面中网页属性后,触发页面加载完成事件,在页面加载完成事件中执行对第二页面的初始化请求;通过所述初始化请求获取第二页面,并缓存第二页面到存储器72 ;再次打开所述网页时,获取第一页面,加载第一页面中网页属性后,触发页面加载完成事件,读取存储器72中缓存的第二页面;存储器72用于缓存浏览器71获取的第二页面。
[0100]这里,所述第一页面可以称为框架页,包括网页属性、页面加载完成事件,其中,所述网页属性包括:CSS标签、JS标签等,所述页面加载完成事件一般为onload事件;所述第二页面可以称为内容页,包括网页的HTML对象、CSS对象、JS对象、图片等网页内容。
[0101]所述浏览器71还用于在触发页面加载完成事件后,执行设置延迟时间事件,在延迟时间内,在存储器72中查询是否有缓存的第二页面,在没有缓存的第二页面时,在延迟时间到后向服务器发送对第二页面的初始化请求。
[0102]在一个实施例中,浏览器71具体用于接收服务器返回的第一页面和网页的版本号,在获取到第二页面后,将所述版本号与对应的第二页面一起缓存到存储器72,再次打开所述网页时,在存储器查询是否有缓存的第二页面,有缓存的第二页面时,比较新接收的网页的版本号和存储器72缓存的版本号是否一致,在一致时,读取缓存的第二页面,在不一致时,不读取缓存的第二页面,在延迟时间到后向服务器发送对第二页面的初始化请求,之后缓存新的第二页面覆盖存储器中原有的第二页面。
[0103]另外,浏览器71还需要在获取到第二页面时,在第二页面的cookie中设置inited为假false,而在完全加载并缓存第二页面后设置inited为ture,这样,浏览器71在读取存储器72缓存的第二页面时,可以先读取inited,如果为ture,则能够读取缓存的第二页面,如果为false,则不能读取缓存的第二页面,需要在延迟时间到后向服务器发送对第二页面的初始化请求,通过所述初始化请求获取第二页面。
[0104]本发明图4所示实施例所述
...
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1