发明内容
本说明书一个或多个实施例描述了一种页面展示方法及装置,可以更灵活地对页面进行展示。
第一方面,提供了一种页面展示方法,包括:
拦截浏览器的页面访问请求;
根据所述页面访问请求,确定访问页面中待加载的页面资源;
从预设页面集合中查找与所述访问页面相匹配的目标页面,所述预设页面集合中的页面包含预定义页面资源,所述预定义页面资源配置有对应的资源获取策略;
将所述待加载的页面资源与所述目标页面中的预定义页面资源进行匹配;
若匹配成功,则获取匹配成功的预定义页面资源对应的资源获取策略;
根据所述资源获取策略,获取所述待加载的页面资源;
向所述浏览器返回获取的页面资源,以使所述浏览器展示所述访问页面。
第二方面,提供了一种页面展示装置,包括:
拦截单元,用于拦截浏览器的页面访问请求;
确定单元,用于根据所述拦截单元拦截的所述页面访问请求,确定访问页面中待加载的页面资源;
查找单元,用于从预设页面集合中查找与所述确定单元确定的所述访问页面相匹配的目标页面,所述预设页面集合中的页面包含预定义页面资源,所述预定义页面资源配置有对应的资源获取策略;
匹配单元,用于将所述确定单元确定的所述待加载的页面资源与所述目标页面中的预定义页面资源进行匹配;
获取单元,用于若所述匹配单元匹配成功,则获取匹配成功的预定义页面资源对应的资源获取策略;
所述获取单元,还用于根据所述资源获取策略,获取所述待加载的页面资源;
发送单元,用于向所述浏览器返回所述获取单元获取的页面资源,以使所述浏览器展示所述访问页面。
本说明书一个或多个实施例提供的页面展示方法及装置,在拦截到浏览器的页面访问请求之后,确定该页面访问请求所请求的访问页面中待加载的页面资源。从预设页面集合中查找与该访问页面相匹配的目标页面。将待加载的页面资源与目标页面中的预定义页面资源进行匹配。若匹配成功,则获取匹配成功的预定义页面资源对应的资源获取策略。根据获取的资源获取策略,获取待加载的页面资源。向浏览器返回获取的页面资源,以使浏览器展示访问页面。由此,可以更灵活地对页面进行展示。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
本说明书一个实施例提供的页面展示方法可以应用于如图1所示的场景中,图1中,浏览器可以是移动终端的浏览器,也可以是个人电脑(personal computer,PC)端的浏览器。用户通过浏览器可以访问页面。此外,该浏览器中可以预先注册有Service Worker,且其处于激活状态。Service Worker是一段运行在浏览器后台进程里的脚本。处于激活状态的Service Worker可以在浏览器首次加载某个页面时,在缓存中缓存该页面的页面资源。处于激活状态的Service Worker还可以通过fetch方法拦截浏览器的页面访问请求,并对该页面访问请求作出响应。在Service Worker无法对页面访问请求作出响应或者基于某种策略优先请求服务器时,由服务器对该页面访问请求作出响应。
图1中的Service Worker对页面访问请求的响应过程可以为:确定该页面访问请求所请求的页面中待加载的页面资源。将请求的页面与预先收集的页面进行匹配。若匹配成功,则将请求的页面中待加载的页面资源与预先收集的页面的预定义页面资源进行匹配。若匹配成功,则根据相匹配的预定义页面资源对应的资源获取策略,获取待加载的页面资源。资源获取策略是指决策页面资源获取途径(包括缓存(缓存中的页面资源可以是在浏览器首次加载该页面时缓存的)和服务器)的方法,其可以包括优先网络(networkOnly)策略、优选缓存(cacheFirst)策略、速度优先(fastest)策略、只读取缓存(cacheOnly)策略以及只使用网络请求(networkOnly)策略等。在获取到待加载的页面资源后,向浏览器返回获取的页面资源。最后由浏览器根据获取的页面资源,展示请求的页面。
图2为本说明书一个实施例提供的页面展示方法流程图。所述方法的执行主体可以为具有处理能力的设备:服务器或者系统或者装置,如,图1中的Service Worker。如图2所示,所述方法具体可以包括:
步骤210,拦截浏览器的页面访问请求。
该页面访问请求可以是在用户通过浏览器请求某个页面时发起的,也可以是在页面跳转时发起的。
具体地,可以是通过Service Worker中的fetch方法来拦截上述页面访问请求。
步骤220,根据页面访问请求,确定访问页面中待加载的页面资源。
此处的访问页面可以为网页应用(Web Application,Web App)中的任一页面。可以理解的是,页面访问请求中可以包括统一资源定位符(Uniform Resoure Locator,URL)。通过获取上述URL,就可以确定访问页面的页面名称。在一种实现方式中,可以将与URL对应的后缀页面确定为访问页面。以URL为:“www.abc.cn/p/a.html”为例来说,确定的访问页面的页面名称可以为:“a.html”。
需要说明的是,上述页面资源的类型可以包括但不限于脚本(java script,js)、样式信息(如,层叠样式表(Cascading Style Sheets,css))、图片(image)以及页面等。
可以理解的是,在确定某个页面的页面名称之后,该页面所包含的页面资源也是可以确定的。在一种实现方式中,可以通过上述fetch方法来获取访问页面中各种页面资源的名称。
步骤230,从预设页面集合中查找与访问页面相匹配的目标页面。
需要说明的是,预设页面集合中的页面具有对应的页面名称,该页面名称可以与上述Web App中的某一页面的页面名称相同,也即预设页面集合中的页面的页面名称是真实存在的。不同的是,预设页面集合中的页面只包含预定义页面资源。该预定义页面资源的类型也可以包括但不限于脚本(java script,js)、样式信息(如,层叠样式表(CascadingStyle Sheets,css))、图片(image)以及页面等。在一种实现方式中,该预定义页面资源采用正则表达式定义。以预定义页面资源为图片为例来说,采用正则表达式可以定义为:“*.jpg”,“*”是指通配符。“*.jpg”的含义为:任意名称的jpg格式图片。
综上,预设页面集合中的页面具有真实的页面名称,但其本身不是实实在在的可以向用户展示的页面。
步骤230的具体实现过程可以为:将访问页面的页面名称与预设页面集合中各个页面的页面名称进行相比较。若与任一页面的页面名称相一致,则将任一页面作为目标页面。
需要说明的是,当从预设页面集合中查找不到与访问页面相匹配的目标页面时,可以理解为Service Worker不对该访问页面中的页面资源的资源获取策略作特定配置。在这种情况下,可以根据预先设置的全局的资源获取策略(可以理解为所有页面中同一页面资源的资源获取策略相同),来获取访问页面中的页面资源。
步骤240,将待加载的页面资源与目标页面中的预定义页面资源进行匹配。
可以理解的是,访问页面中页面资源的个数可以为一个或多个,该一个或多个页面资源分别归属于上述类型中的一种或多种。以访问页面包含如下三张图片:“图片1.jpg”、“图片2.jpg”以及“图片3.gif”。而目标页面中也只包含图片,且该图片定义为如下的正则表达式:“*.jpg”。则访问页面中的前两个图片可以与目标页面中的图片正则匹配成功,而第三个图片与目标页面中的图片正则匹配不成功。
当然,在实际应用中,预定义页面资源也可以采用其它方式定义,如字符串定义,本说明书对此不作限定。当预定义页面资源采用字符串定义时,步骤240的匹配过程即为字符串匹配的过程。
步骤250,若匹配成功,则获取匹配成功的预定义页面资源对应的资源获取策略。
此处的资源获取策略可以包括但不限于:优先网络(networkOnly)策略、优选缓存(cacheFirst)策略、速度优先(fastest)策略、只读取缓存(cacheOnly)策略以及只使用网络请求(networkOnly)策略等。优先网络策略可以是指:首先尝试通过网络(即服务器)来请求页面资源,如果成功,可以将页面资源存储在缓存中,否则返回缓存中的页面资源。优选缓存策略可以是指:如果缓存中存在相匹配的页面资源,则返回相应的页面资源,否则尝试从网络(即服务器)请求页面资源。速度优先策略可以是指:从缓存和网络(即服务器)并行请求页面资源,并以首先返回的页面资源作为响应,通常这意味着缓存优先响应。只读取缓存策略可以是指:从缓存中获取请求的页面资源,如果没有,则请求失败。只使用网络请求策略可以是指:从网络(即服务器)获取请求的页面资源。如果获取页面资源失败,则请求失败。
在本说明书中,可以为预设页面集中页面的每个预定义页面资源配置对应的资源获取策略。以页面的页面名称为:“a.html”,且该页面中的预定义页面资源为:“*.jpg”,对应的资源获取策略为:“优先网络(networkOnly)策略”为例来说,上述配置方法可以通过如下代码来实现:
routes:{
“a.html”:{
“*.jpg”:{
strategies:“networkOnly”
...
}
}
}
可以理解的是,上述只给出了配置一个页面的预定义页面资源对应的资源获取策略的方法。在实际应用中,可以为多个页面的预定义页面资源配置对应的资源获取策略,其配置方法类似,在此不复赘述。
需要说明的是,本说明书上述实施例通过针对不同页面中的预定义页面资源配置对应的资源获取策略,可以实现对不同页面的同一页面资源可以配置不同的资源获取策略目的。由此,实现了页面资源获取的灵活性,从而可以更灵活地展示页面。
步骤260,根据资源获取策略,获取待加载的页面资源。
以访问页面的页面名称为:“a.html”,且该访问页面只包含如下三张图片:“图片1.jpg”、“图片2.jpg”以及“图片3.gif”为例来说,因为访问页面的页面名称与上述代码中的页面名称相一致(即相匹配),且“图片1.jpg”和“图片2.jpg”与“*.jpg”相匹配,所以根据优先网络策略,来获取“图片1.jpg”和“图片2.jpg”。即首先尝试通过网络(即服务器)来请求“图片1.jpg”和“图片2.jpg”,如果成功,可以将“图片1.jpg”和“图片2.jpg”存储在缓存中,否则返回缓存中的“图片1.jpg”和“图片2.jpg”。
步骤270,向浏览器返回获取的页面资源,以使浏览器展示访问页面。
需要说明的是,上述步骤250-步骤260是在访问页面中待加载的页面资源与目标页面中的预定义页面资源匹配成功的情况下,待加载的页面资源的获取方法。当某一待加载的页面资源与预定义页面资源匹配不成功时,如前述例子中的“图片3.gif”,可以根据全局的资源获取策略,来获取该页面资源。
总之,通过本说明书上述实施例,可以实现为不同页面的同一页面资源配置不同的资源获取策略,这提高了页面资源获取的灵活性,从而可以提高页面展示的灵活性。
与上述页面展示方法对应地,本说明书一个实施例还提供的一种页面展示装置,如图3所示,该装置包括:
拦截单元301,用于拦截浏览器的页面访问请求。
可选地,该页面访问请求可以是由服务工作者拦截的,服务工作者运行在浏览器的后台进程里。
确定单元302,用于根据拦截单元301拦截的页面访问请求,确定访问页面中待加载的页面资源。
查找单元303,用于从预设页面集合中查找与确定单元302确定的访问页面相匹配的目标页面,预设页面集合中的页面包含预定义页面资源,该预定义页面资源配置有对应的资源获取策略。
可选地,查找单元303具体可以用于:
从页面访问请求中获取统一资源定位符URL。
根据URL,确定访问页面的页面名称。
将访问页面的页面名称与预设页面集合中各个页面的页面名称进行相比较。
若与任一页面的页面名称相一致,则将任一页面作为目标页面。
匹配单元304,用于将确定单元302确定的待加载的页面资源与目标页面中的预定义页面资源进行匹配。
可选地,预定义页面资源可以采用正则表达式定义。匹配单元304具体可以用于:
将待加载的页面资源与目标页面中的预定义页面资源进行正则匹配。
获取单元305,用于若匹配单元304匹配成功,则获取匹配成功的预定义页面资源对应的资源获取策略。
此处的资源获取策略可以包括以下任一种:
优先网络策略、优选缓存策略、速度优先策略、只读取缓存策略以及只使用网络请求策略等。
获取单元305,还用于根据资源获取策略,获取待加载的页面资源。
发送单元306,用于向浏览器返回获取单元305获取的页面资源,以使浏览器展示访问页面。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的页面展示装置,拦截单元301拦截浏览器的页面访问请求。确定单元302根据页面访问请求,确定访问页面中待加载的页面资源。查找单元303从预设页面集合中查找与访问页面相匹配的目标页面。匹配单元304将待加载的页面资源与目标页面中的预定义页面资源进行匹配。若匹配成功,则获取单元305获取匹配成功的预定义页面资源对应的资源获取策略。获取单元305根据资源获取策略,获取待加载的页面资源。发送单元306向浏览器返回页面资源,以使浏览器展示访问页面。由此,可以更灵活地对页面进行展示。
需要说明的是,上述页面展示装置可以为图1中浏览器的模块或者单元。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本说明书的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的具体实施方式而已,并不用于限定本说明书的保护范围,凡在本说明书的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的保护范围之内。