CN111382344A - 为对象提供页面加载服务的方法、装置及客户端 - Google Patents

为对象提供页面加载服务的方法、装置及客户端 Download PDF

Info

Publication number
CN111382344A
CN111382344A CN201811613739.4A CN201811613739A CN111382344A CN 111382344 A CN111382344 A CN 111382344A CN 201811613739 A CN201811613739 A CN 201811613739A CN 111382344 A CN111382344 A CN 111382344A
Authority
CN
China
Prior art keywords
client
resource
main document
push message
service
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.)
Granted
Application number
CN201811613739.4A
Other languages
English (en)
Other versions
CN111382344B (zh
Inventor
王晓振
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201811613739.4A priority Critical patent/CN111382344B/zh
Publication of CN111382344A publication Critical patent/CN111382344A/zh
Application granted granted Critical
Publication of CN111382344B publication Critical patent/CN111382344B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种为对象提供页面加载服务的方法、装置及客户端。页面加载方法包括:响应于来自推送服务器的推送消息,在客户端启动与所述推送消息所针对的对象对应的服务运行器,所述对象是以所述客户端为运行平台的应用或页面;在所述推送消息为用于预加载的消息的情况下,所述服务运行器控制下载所述推送消息对应的主文档和/或资源,并将所下载的页面主文档和/或资源缓存在客户端本地。由此,通过基于页面通用标准技术的消息机制以及服务运行器达到预加载的目的,以提供更好的页面加载服务,为提升用户页面浏览体验提供便利。

Description

为对象提供页面加载服务的方法、装置及客户端
技术领域
本公开涉及互联网技术领域,特别涉及一种为对象提供页面加载服务的方法、装置及客户端、计算设备和存储介质。
背景技术
万维网(Web)应用程序是一种基于Web技术实现的应用程序,能够在Web浏览器或其它Web运行环境的上下文中执行。随着互联网技术的发展,人们越来越频繁地通过终端使用万维网(Web)应用中提供的服务。例如,使用网页版邮箱收发邮件,在新闻网站中获取新闻资讯等。
为了向用户提供较好的浏览体验,通常会通过预加载技术预先加载呈现Web页面所需的一些资源。而现有技术中一般由Web应用自己实现预加载。这种通过Web应用自己实现预加载的方案尚不能完全得到现有的Web标准技术的支持,要么无法实现,要么需要针对Web应用进行私有化定制(例如通过专用资源获取接口),带来了较大的开发成本,也难以保证给用户带来很好的浏览体验。
因此仍然需要一种能够提供更好的页面加载服务的方案。
发明内容
本公开的目的是提供一种为对象提供页面加载服务的方法、装置及客户端,以提供更好的页面加载服务,为提升用户页面浏览体验提供便利。
根据本公开的第一个方面,提供了一种页面加载方法,包括:响应于来自推送服务器的推送消息,在客户端启动与所述推送消息所针对的对象对应的服务运行器,所述对象是以所述客户端为运行平台的应用或页面;在所述推送消息为用于预加载的消息的情况下,所述服务运行器控制下载所述推送消息对应的主文档和/或资源,并将所下载的页面主文档和/或资源缓存在客户端本地。
可选地,所述服务运行器将所下载的页面主文档和/或资源缓存在所述客户端本地对应于所述服务运行器的缓存区。
可选地,所述服务运行器对所述推送消息进行解析,以确定所述推送消息的类型,并执行相应的处理。
可选地,在所述推送消息为用于预加载的消息的情况下,所述服务运行器对所述推送消息进行解析,以获取所述推送消息所包括的要下载的页面主文档和/或资源的列表信息,并且其中,所述服务运行器基于所述列表信息包括的下载地址,控制下载所述推送消息对应的页面主文档和/或资源。
可选地,该页面加载方法还可以包括:在所述推送消息为用于通知的消息的情况下,所述服务运行器控制在所述客户端执行对应于所述推送消息的通知操作。
可选地,该页面加载方法还可以包括:响应于用户在所述客户端发起的针对对象的操作,在所述客户端启动与所述对象对应的服务运行器;以及在所述服务运行器判定在客户端本地存在所述主文档和/或所述资源的情况下,从所述客户端本地获取所述主文档和/或所述资源。
可选地,该页面加载方法还可以包括:所述服务运行器拦截所述客户端响应于所述操作发起的针对所述对象的页面主文档请求和/或资源请求;基于拦截到的所述主文档请求和/或资源请求,所述服务运行器在客户端本地查找以判断是否存在与所述主文档请求对应的主文档和/或与所述资源请求对应的资源。
可选地,该页面加载方法还可以包括:所述服务运行器在客户端本地对应于所述服务运行器的缓存区进行查找。
可选地,该页面加载方法还可以包括:解析从所述客户端本地中查找到的与所述主文档请求对应的主文档;以及基于对所述主文档的解析结果,发起获取与所述主文档关联的资源的资源请求。
可选地,该页面加载方法还可以包括:在未查找到所述主文档和/或所述资源的情况下,所述服务运行器控制向服务器请求获取所述主文档和/或所述资源。
可选地,所述推送消息是所述推送服务器响应于接收到所述对象对应的服务器发送的更新消息而发送的;或者所述推送消息是所述推送服务器周期性地发送的。
可选地,该页面加载方法还可以包括:响应于来自推送服务器的推送消息,启动所述客户端。
可选地,所述推送消息包括对象字段,用于指定其所关联的对象,所述客户端从所述推送消息的对象字段识别其所关联的对象,以启动所述服务运行器。
可选地,所述对象在所述客户端注册并且安装成功;并且/或者所述对象已在所述推送服务器注册,并且已授权所述推送服务器向所述对象对应的服务运行器推送所述推送消息。
可选地,所述服务运行器通过与所述对象对应的缓存接口将所下载的主文档和/或资源缓存在客户端本地;并且/或者所述服务运行器通过通知接口控制对应于所述推送消息的通知操作;并且/或者所述服务运行器通过网络请求接口请求获取所述主文档和/或资源。
可选地,所述客户端是基于Web标准内核的客户端,所述对象是Web应用或Web页面。
可选地,所述服务运行器是Service Worker。
根据本公开的第二个方面,提供了一种为对象提供页面加载服务的方法,所述对象以客户端为运行平台,该方法包括:响应于客户端转发的来自推送服务器的推送消息为用于预加载的消息,控制下载所述推送消息对应的主文档和/或资源;将所下载的页面主文档和/或资源缓存在客户端本地对应于所述对象的缓存区;响应于用户在所述客户端发起的针对对象的操作,在所述客户端本地对应于所述对象的缓存区查找到所述主文档和/或所述资源的情况下,从所述客户端本地获取所述主文档和/或所述资源。
可选地,该方法还可以包括:对所述推送消息进行解析,以确定所述推送消息的类型,并执行相应的处理。
可选地,该方法还可以包括:在所述推送消息为用于通知的消息的情况下,控制在所述客户端执行对应于所述推送消息的通知操作。
可选地,该方法还可以包括:拦截所述客户端响应于所述操作发起的针对所述对象的页面主文档请求和/或资源请求;基于拦截到的所述主文档请求和/或资源请求,在客户端本地查找以判断是否存在与所述主文档请求对应的主文档和/或与所述资源请求对应的资源。
可选地,该方法还可以包括:在未查找到所述主文档和/或所述资源的情况下,控制向服务器请求获取所述主文档和/或所述资源。
可选地,所述客户端是基于Web标准内核的客户端,所述对象是Web应用或Web页面。
可选地,该方法还可以包括:为所述对象注册与其对应的服务运行器,其中,如上中任何一项所述的为对象提供页面加载服务的方法是由所述服务运行器执行的。
可选地,所述服务运行器是Service Worker。
根据本公开的第三个方面,提供了一种页面加载装置,包括:服务运行器启动装置,用于响应于来自推送服务器的推送消息,在客户端启动与所述推送消息所针对的对象对应的服务运行器,所述对象是以所述客户端为运行平台的应用或页面;服务运行器,用于在所述推送消息为用于预加载的消息的情况下,控制下载所述推送消息对应的主文档和/或资源,并将所下载的页面主文档和/或资源缓存在客户端本地。
可选地,服务运行器启动装置还用于响应于用户在所述客户端发起的针对对象的操作,在所述客户端启动与所述对象对应的服务运行器;所述服务运行器还用于在判定在客户端本地存在所述主文档和/或所述资源的情况下,从所述客户端本地获取所述主文档和/或所述资源。
可选地,所述服务运行器还用于拦截所述客户端响应于所述操作发起的针对所述对象的页面主文档请求和/或资源请求,并基于拦截到的所述主文档请求和/或资源请求,在客户端本地查找以判断是否存在与所述主文档请求对应的主文档和/或与所述资源请求对应的资源。
可选地,该装置还可以包括:文档解析装置,用于解析从所述客户端本地中查找到的与所述主文档请求对应的主文档;以及资源请求装置,用于基于对所述主文档的解析结果,发起获取与所述主文档关联的资源的资源请求。
可选地,在未查找到所述主文档和/或所述资源的情况下,所述服务运行器还控制向服务器请求获取所述主文档和/或所述资源。
可选地,该装置还可以包括:客户端启动装置,用于响应于来自推送服务器的推送消息,启动所述客户端。
可选地,所述推送消息包括对象字段,用于指定其所关联的对象,所述服务运行器启动装置从所述推送消息的对象字段识别其所关联的对象,以启动所述服务运行器。
根据本公开的第四个方面,提供了一种为对象提供页面加载服务的装置,所述对象以客户端为运行平台,该装置包括:主文档和/或资源下载装置,用于响应于客户端转发的来自推送服务器的推送消息为用于预加载的消息,控制下载所述推送消息对应的主文档和/或资源;主文档和/或资源缓存装置,用于将所下载的页面主文档和/或资源缓存在客户端本地对应于所述对象的缓存区;主文档和/或资源获取装置,用于响应于用户在所述客户端发起的针对对象的操作,在所述客户端本地对应于所述对象的缓存区查找到所述主文档和/或所述资源的情况下,从所述客户端本地获取所述主文档和/或所述资源。
可选地,该装置还可以包括:推送消息解析装置,用于对所述推送消息进行解析,以确定所述推送消息的类型,并执行相应的处理。
可选地,该装置还可以包括:通知装置,用于在所述推送消息为用于通知的消息的情况下,控制在所述客户端执行对应于所述推送消息的通知操作。
可选地,该装置还可以包括:网络请求拦截装置,用于拦截所述客户端响应于所述操作发起的针对所述对象的页面主文档请求和/或资源请求;主文档和/或资源查找装置,用于基于拦截到的所述主文档请求和/或资源请求,在客户端本地查找以判断是否存在与所述主文档请求对应的主文档和/或与所述资源请求对应的资源。
可选地,在未查找到所述主文档和/或所述资源的情况下,主文档和/或资源下载装置还用于控制向服务器请求获取所述主文档和/或所述资源。
根据本公开的第五个方面,提供了一种为对象提供页面加载服务的客户端,所述客户端用于执行如上中任何一项所述的方法。
根据本公开的第六个方面,提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上任何一项所述的方法。
根据本公开的第七个方面,提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上任一项所述的方法。
由此,本公开通过基于页面通用标准技术达到预加载主文档和/或资源的目的,以提供更好的页面加载服务,为提升用户页面浏览体验提供便利。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了用于实现本公开实施例的环境的示意图。
图2示出了根据本公开一个实施例的为对象提供页面加载服务的客户端的示意性框图。
图3示出了根据本公开一个实施例的预加载的流程示意图。
图4示出了根据本公开一个实施例的页面加载的流程示意图。
图5示出了根据本公开一个实施例的页面加载方法的预加载阶段的流程示意图。
图6示出了根据本公开一个实施例的页面加载方法的加载阶段的流程示意图。
图7示出了根据本公开一个实施例的为对象提供页面加载服务的方法的流程示意图。
图8是示出了根据本公开一实施例的页面加载装置的结构的示意性方框图。
图9示出了根据本公开一实施例的为对象提供页面加载服务的装置的结构的示意性方框图。
图10示出了根据本发明一实施例的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
【方案概述】
万维网应用程序(Web APP)或万维网页面(Web页面)是一种基于Web技术实现的应用程序或页面,能够在Web浏览器或其它Web运行环境的上下文中执行,其最大的优点是用户只需要浏览器即可很容易地访问应用程序,而不需要再安装其它软件。
当用户想要打开Web页面时,从用户打开页面的动作开始,到将页面呈现给用户,这段时间内主要经历了如下流程:
(1)请求主文档;
(2)解析主文档,获得主文档关联的资源(例如样式表,JavaScript,图片等);
(3)请求资源;
(4)根据样式表进行排版,执行JavaScript,解码图片;
(5)渲染并展示给用户。
其中,第(1)、(3)步骤所耗费的时间依赖于页面所需要资源的大小及当时的网络环境(即下载速度)。
资源文件大或是网络环境差均会延长资源的加载时间,使得相关资源不能及时在页面上呈现,用户会看到很长一段时间的空白页,给用户带来很不好的体验。
通常,为了向用户提供更好的浏览体验,会通过预加载技术解决第(1)、(3)步骤耗时过久的问题。其中,预加载技术是通过提前将Web页面或Web应用所需要的资源(例如页面呈现所需的主文档及相关资源)下载到本地进行缓存,使得在用户访问页面时,可以直接从本地加载进行页面呈现所需要的资源,从而达到快速访问的目的。
然而,现有技术中一般由Web应用自己实现预加载。这种通过Web应用自行实现预加载的方案尚不能完全得到现有的Web标准技术的支持,要么无法实现,要么需要针对Web应用进行私有化定制(例如通过专用资源获取接口),带来了较大的开发成本,也难以保证给用户很好的浏览体验。
有鉴于此,本公开提出了一种页面加载方案,面向对象(例如Web页面或Web应用),通过引入与对象对应的服务运行器,作为该对象与其对应的运行平台(例如客户端)、或者该运行平台与网络之间的代理,使得在运行平台未启动和/或对象未启动的情况下,也可以与网络进行通信以达到预加载页面主文档和/或资源的目的。
本公开如下示例中,客户端可以是基于Web标准内核的客户端,或是支持Web标准的浏览器。对象可以是Web页面或Web应用程序。客户端可以作为对象的运行平台,并能够以Web页面的形式向用户提供相关服务。
在本公开如下示例中,服务运行器例如可以是Service Worker。其中,ServiceWorker,也称服务器工作线程,是Web Worker的一种。是一个JavaScript文件,与浏览器主线程分开,能够用于拦截网络请求、读写缓存及处理推送消息。Service Workers本质上充当Web应用程序或Web页面与其运行平台(例如浏览器)之间的代理服务器,也可以在网络可用时作为运行平台和网络间的代理。
客户端上可以作为一个或多个Web应用的运行平台,每一个Web应用为客户端提供其服务运行器相应的脚本文件(例如sw.js文件),客户端通过将该脚本文件进行注册/parse/installing,以使得安装成功后能够在客户端实现该对象相应的服务运行器(Service Worker)的功能。其中,对象向客户端注册服务运行器时,客户端生成对应的服务运行器注册(Service Worker Registration)对象,以指定该服务运行器所关联的对象。
并且,在客户端注册成功的服务器运行器能够向推送服务器注册并授权Web push(将消息从服务器推送到运行Web APP的客户端)服务,使得该Web应用对应的应用服务器端(Application server,是Web APP的服务器端)或其它资源服务器(例如开源服务器)能够通过该推送服务器向其服务运行器推送消息(Push message,是指application server发送给Web APP的消息)。其中,在客户端注册的服务运行器向推送服务器注册以订阅消息时,推送服务器向该客户端和/或服务运行器返回一个用于进行对象标识的对象字段,以用于指定所关联的对象。
上述对象、客户端、服务运行器、推送服务器两两之间均可以基于相应的对象字段关联识别,本公开对此不做限制。
在如下的示例中,对象即以客户端为运行平台的应用或页面均是在已完成环境准备的情况下实现的,即对象已实现在客户端及推送服务器的注册和/或授权,并且对象对应的服务运行器已在客户端安装(Installation))成功。
并且,在如下的示例中,服务运行器例如可以通过相关的接口来实现相应的功能。例如服务运行器可以通过与所述对象对应的缓存接口(例如Service Worker Cache API)将所下载的主文档和/或资源缓存在客户端本地。服务运行器可以通过通知接口(例如Notification API)控制对应于所述推送消息的通知操作。服务运行器可以通过网络请求接口(例如Fetch API)请求获取所述主文档和/或资源。
本公开的页面加载方案,能够完全或基本上完全基于Web标准技术例如Web push技术和Service Worker技术,实现页面主文档和/或资源的预加载、资源缓存管理以及消息推送通知等,即使在不确定的场景下(比如,网络不稳定,用户停留时间不确定),依然能提供可靠的Web服务,为用户提供极速流畅的用户体验,并且使得用户体验到与原生应用程序一致的用户体验。
如下将结合附图及实施例详细说明本公开的为对象提供页面加载服务的方案。
【环境】
图1示出了用于实现本公开实施例的环境的示意图。
如图1所示,该环境可以包括至少一个服务器20和多个终端设备10_1、10_2……10_N。
终端设备10_1、10_2……10_N是可用来进行网络访问的任何合适的电子设备,例如可以是便携式电子设备,包括但不限于智能电话、平板电脑或是其他便携式客户端。终端设备10_1、10_2……10_N可以经由网络40实现与服务器20的信息收发。终端设备之间(例如,10_1与10_2或10_N之间)也可以经由网络40彼此通信。
服务器20是能够通过网络访问的提供交互服务所需信息的任何服务器。服务器20可以通过访问数据库30来获取终端设备10_1、10_2……10_N所需的内容。
网络40可以是广义上的用于信息传递的网络,可以包括一个或多个通信网络,诸如无线通信网络、因特网、私域网、局域网、城域网、广域网或是蜂窝数据网络等。
在随后的描述中会选择其中的一个或部分终端设备加以描述(例如,终端设备10-1),但是本领域技术人员应该理解的是,上述1…N个移动终端旨在表示真实网络中存在的大量移动终端,示出的单个服务器20和数据库30旨在表示本发明的技术方案涉及服务器及数据库的操作。对特定编号的移动端以及单个服务器和数据库加以详述至少为了说明方便,而非暗示对移动端和服务器的类型或是位置等具有限制。可以理解的是,虽然图中仅示出了一个服务器20,但是在实践中,可以包括多个服务器20,以为不同的对象提供服务。
应当注意,如果向图示环境中添加附加模块或从其中去除个别模块,不会改变本发明的示例实施例的底层概念。另外,虽然为了方便说明而在图1中示出了从数据库30到服务器20的双向箭头,但本领域技术人员可以理解的是,上述数据的收发也是可以通过网络40实现的。
在本公开的技术方案中,客户端能够在上述终端设备上安装并运行,用户能够基于该终端设备和/或客户端对以该客户端为运行平台的对象进行操作以请求提供与该对象相关的页面加载服务。并且,该客户端可以经由网络40实现与服务器20的信息收发。服务器20可以通过访问数据库30来获取客户端所需的内容。
【客户端】
图2示出了根据本公开一个实施例的为对象提供页面加载服务的客户端的示意性框图。通过基于Web标准技术的消息推送机制以及与对象对应的服务运行器,在客户端后台预先(例如在网络良好时)实现相关资源的加载和本地缓存。当用户进行页面访问的时候,从客户端本地直接获取所需要的资源,从而达到快速访问的目的。
在其中,该客户端可以是基于Web标准内核的客户端,也可以是支持Web标准的浏览器,可以作为对象(Web页面或Web应用程序)的运行平台。客户端可以安装并运行在终端设备上,并能够以Web页面的形式向用户提供相关服务。
如下示例中,以用户要访问的基于Web的页面或Web应用为对象。并且其中,该对象已完成在客户端和推送服务器的注册和/或授权,即客户端支持该对象对应的服务运行器的功能,并且允许对象对应的服务器或其它资源服务器通过推送服务器向在该客户端上运行的对象推送消息。
如图2所示,本公开的客户端200可以包括:消息进程210、客户端内核220以及对应于多个对象的多个服务运行器230。其中,消息进程210、客户端内核220、服务运行器230分别通过相应的接口实现相应的功能。
消息进程210是一个很小的独立进程,能够独立于客户端内核运行在客户端后台,用于(例如通过Push API)接收服务器(包括资源服务器和/或推送服务器)通过推送服务器推送的消息,并能够(例如通过Push API)将所接收到的推送消息发送至客户端内核。
客户端内核220是客户端的核心部分。
在客户端未启动的情况下,当该消息进程接收到该推送消息后会先启动客户端即启动客户端内核,并将所接收到的推送消息发送至该客户端内核。
在客户端启动而对象未启动的情况下,该客户端内核220能够响应于接收到的推送消息,启动与推送消息对应的服务运行器,以便基于该服务运行器来对该推送消息进行处理以及执行相应的处理。
服务运行器230是一个注册在指定源和路径下的事件驱动工作线程,能够对客户端内核220转发的来自推送服务器的推送消息进行解析,以确定推送消息的类型,并执行相应的处理。
该推送消息可以是用于通知的消息,例如资源更新通知消息。此时,服务运行器例如能够控制通知接口(Notification API)在所述客户端执行对应于所述推送消息的通知操作,例如在客户端显示该通知。
该推送消息也可以是用于预加载的消息。此时,服务运行器能够对推送消息进行解析,以获取推送消息所包括的要下载的页面主文档和/或资源的列表信息。并且,服务运行器可以基于列表信息包括的下载地址,通过网络请求接口(例如Fetch API)控制下载推送消息对应的页面主文档和/或资源。
进一步地,服务运行器230能够例如通过缓存接口(Service Worker Cache API)将所下载的页面主文档和/或资源缓存在所述客户端本地对应于所述服务运行器的缓存区,以管理缓存资源。该对应于服务运行器的缓存区例如可以是在对象向客户端注册服务运行器功能时为该对象分配的,可以基于该对象的某个对象字段进行关联标识,本公开对此不做限制。
通过上述客户端以及预加载的方案,能够在客户端未启动和/或对象未启动的情况下,通过消息推送技术以及服务运行器,完成资源加载以及资源缓存,从而达到预加载的目的。
图3示出了根据本公开一个实施例的预加载的流程示意图。其中,该实施例是在客户端未启动的情况下实现的。
如图3所示,在步骤S310,服务器通过Web push在特定时间内客户端发送一个推送消息。其中,服务器可以包括基于Web push技术推送消息的推送服务器,也可以包括与对象对应的资源服务器。推送服务器可以响应于接收到所述对象对应的资源服务器发送的更新消息而发送该推送消息,也可以周期性发送该推送消息。
在步骤S320,运行在终端设备内的一个独立的消息进程获取该推送消息。
在步骤S330,消息进程启动客户端内核,并将该推送消息发送至客户端内核。
在步骤S340,客户端内核获得该推送消息后,启动与该推送消息对应的服务运行器。
在步骤S350,服务运行器解析该推送消息。
在判断该推送消息是用于预加载的消息的情况下,则解析推送消息中带有的主文档和/或资源的列表信息,并进入步骤S360,以根据列表信息相服务器向服务器发出网络请求以请求下载相应的主文档和/或资源。
在判断该推送消息是用于通知的消息的情况下,进入步骤S370,执行通知动作,以向用户显示相应的通知。
由此,在客户端和/或Web应用和/或Web页面未启动的情况下,通过基于Web标准技术的Web push技术以及服务运行器,能够实现服务器与Web应用或Web页面的交互,从而能够提前将Web应用或Web页面所需要的资源加载到客户端本地进行缓存,以实现预加载的目的。
一般,当用户要访问客户端或应用或页面时,需要首先打开客户端并对要访问的页面进行操作。响应于用户对要访问页面的操作,客户端能够发起网络请求,以向相关服务器请求所需的信息或内容或数据。
作为本公开的一个示例,响应于用户对要访问页面的操作,可以在客户端启动(即激活)针对该页面的服务运行器。服务运行器能够拦截和处理客户端发起的网络请求,基于所拦截的网络请求,先在客户端本地缓存中查找与该网络请求所请求的信息或内容或数据,并对在客户端本地已经预加载并缓存的信息或内容或数据进行排版和/或渲染,以向用户呈现相应的页面,从而达到快速访问页面的目的。如果在客户端本地未查找到所需的信息或内容或数据,服务运行器能够通过网络请求接口(例如Fetch API)控制向服务器请求获取相应的页面主文档和/或资源。
图4示出了根据本公开一个实施例的页面加载的流程示意图。
如图4所示,在步骤S410,用户打开客户端并执行访问页面的操作。
响应于用户在客户端发起的针对对象的操作,在步骤S415,在所述客户端启动与所述对象对应的服务运行器,以便基于该服务运行器进行之后的页面加载服务。
在步骤S420,启动(即激活)对象对应的服务运行器。
并且,响应于用户在客户端发起的针对对象的操作,在步骤S425,客户端(例如客户端内核)发起针对对象的主文档请求。可以理解的是,上述步骤S415、S420、S425也可以同时进行,本公开对此不做限制。
在步骤S430,与所述对象对应的服务运行器能够拦截客户端发起的主文档请求。
并在步骤S435,根据该主文档请求,在客户端本地对应于所述服务运行器的缓存区中进行查找,以判断是否存在与主文档请求对应的主文档。在判定客户端本地存在所述主文档的情况下,从所述客户端本地获取所述主文档并返回给客户端(例如客户端内核)。
在步骤S440,客户端内核能够解析从所述客户端本地中查找到的与所述主文档请求对应的主文档。
在步骤S445,客户端内核能够基于对所述主文档的解析结果,发起获取与所述主文档关联的资源的资源请求,以获取与主文档关联的资源。
在步骤S450,服务运行器能够拦截所述资源请求。并在步骤S455,基于该资源请求,在客户端本地对应于所述服务运行器的缓存中进行查找,以判断是否存在与资源请求对应的资源。并在判定客户端本地存在所述资源的情况下,从所述客户端本地获取所述资源并返回给客户端内核。
在步骤S460,客户端内核能够根据所获取的主文档和/或资源进行排版、渲染,以得到需要向用户呈现的Web页面,并在步骤S465,向用户呈现所述页面。
由此,基于上述服务运行器,能够拦截和处理网络请求并管理资源缓存,以便基于已经预加载并已在客户端本地缓存的主文档和/或资源,向用户展现相应的页面,从而达到快速访问的目的。
并且其中,在步骤S435或S445,在未查找到所述主文档和/或所述资源的情况下,所述服务运行器能够控制(例如通过Fetch接口)发出网络请求以向服务器请求获取所述主文档和/或所述资源。
作为本公开的一个示例,服务运行器可以通过与所述对象对应的缓存接口(Service Worker Cache API)将所下载的主文档和/或资源缓存在客户端本地。服务运行器可以通过通知接口(例如Notification API)控制对应于所述推送消息的通知操作。服务运行器通过网络请求接口(例如Fetch API)请求获取所述主文档和/或资源。
由此,基于上述方案,一方面,基于消息机制,引入了一个特定、独立的消息进程,使得基于标准技术的Web push技术,在离线(例如客户端和/或对象未启动)的情况下,仍然能够实现服务器与客户端的通信,以使得客户端能够接收到服务器侧推送的消息。另一方面,通过引入与对象对应的服务运行器,来作为客户端、对象以及网络之间的代理服务,以实现服务器与对象的交互,并在后台预先下载和缓存Web页面或Web应用所需的资源,实现预加载的目的。进一步地,在用户请求访问页面时,该服务运行器还能够拦截和处理客户端发起的网络请求,以在客户端本地缓存中快速查找所请求的内容,为用提供快速、流畅的浏览体验。
【页面加载方法】
基于所要加载的页面的整体加载流程,该页面加载整体可以包括预加载阶段以及资源加载阶段。
预加载阶段
图5示出了根据本公开一个实施例的页面加载方法的预加载阶段的流程示意图。
如图5所示,在步骤S510,响应于来自推送服务器的推送消息,在客户端启动与所述推送消息所针对的对象对应的服务运行器。
对象是本公开的页面加载服务针对的服务对象,例如可以是以所述客户端为运行平台的应用或页面。优选地,该对象可以是Web应用或Web页面。
客户端可以是一个运行平台,例如可以是基于Web标准内核的客户端或是支持Web标准的浏览器。该客户端能够以Web页面形式向用户提供相关服务。
服务运行器是一个独立于客户端内核并在后台运行的服务工作线程,例如可以是Service Worker。
在本公开示例中,上述对象已在所述客户端注册并且安装成功,获得了服务运行器的功能。并且,上述对象也已在所述推送服务器注册,并且已授权所述推送服务器向所述对象对应的服务运行器推送所述推送消息。
该推送消息可以是所述推送服务器响应于接收到所述对象对应的服务器发送的更新消息而发送的,也可以是推送服务器周期性地发送的。并且,推送消息可以包括上述对象字段,以用于指定其所关联的对象。
在客户端未启动的情况下,在上述步骤S510,可以响应于来自推送服务器的推送消息,先启动所述客户端,并在随后启动对象对应的服务运行器。
客户端能够从所述推送消息的对象字段识别其所关联的对象,以启动所述服务运行器。
所述服务运行器能够对所述推送消息进行解析,以确定所述推送消息的类型,并执行相应的处理。
例如,在所述推送消息为用于通知的消息的情况下,所述服务运行器控制在所述客户端执行对应于所述推送消息的通知操作。
又例如,在所述推送消息为用于预加载的消息的情况下,所述服务运行器对所述推送消息进行解析,以获取所述推送消息所包括的要下载的页面主文档和/或资源的列表信息。
在步骤S520,在所述推送消息为用于预加载的消息的情况下,所述服务运行器控制下载所述推送消息对应的主文档和/或资源,并将所下载的页面主文档和/或资源缓存在客户端本地。
在其中,服务运行器能够基于所述列表信息包括的下载地址,控制下载所述推送消息对应的页面主文档和/或资源。并且,服务运行器能够将所下载的页面主文档和/或资源缓存在所述客户端本地对应于所述服务运行器的缓存区。
加载阶段
图6示出了根据本公开一个实施例的页面加载方法的加载阶段的流程示意图。
用户打开终端设备上的客户端并针对该客户端上的某一个对象(例如Web应用)进行访问操作,例如点击该Web应用对应的图标以启动该Web应用。
如图6所示,在步骤S610,响应于用户在所述客户端发起的针对对象的操作,在所述客户端启动与所述对象对应的服务运行器。
服务运行器能够拦截所述客户端响应于所述操作发起的针对所述对象的页面主文档请求和/或资源请求,并基于拦截到的所述主文档请求和/或资源请求,所述服务运行器在客户端本地对应于所述服务运行器的缓存区进行查找,以判断是否存在与所述主文档请求对应的主文档和/或与所述资源请求对应的资源。
在步骤S620,在所述服务运行器判定在客户端本地存在所述主文档和/或所述资源的情况下,从所述客户端本地获取所述主文档和/或所述资源。
在其中,服务运行器将在客户端本地所查找到的与主文档请求对应的主文档返回给客户端(例如客户端内核),客户端能够解析该主文档,并基于对所述主文档的解析结果,发起获取与所述主文档关联的资源的资源请求。随后,服务运行器基于拦截到的所述资源请求在客户端本地查找与所述资源请求对应的资源。
而在未查找到所述主文档和/或所述资源的情况下,所述服务运行器可以控制向服务器请求获取所述主文档和/或所述资源。例如,可以通过Fetch接口向服务器发起获取主文档和/或资源的网络请求。
至此已经结合附图5-6介绍了本公开的页面加载方法,该方法的具体实现的一些细节与上文的描述相同或相似,可参见上文的相关描述,在此不再赘述。
【为对象提供页面加载服务的方法】
图7示出了根据本公开一个实施例的为对象提供页面加载服务的方法的流程示意图。其中,所述对象以客户端为运行平台,客户端例如是基于Web标准内核的客户端,对象例如是Web应用或Web页面。可以为对象注册与其对应的服务运行器(例如Service Worker),并由该服务运行器实现所述为对象提供页面加载服务的方法。
如图7所示,在步骤S710,响应于客户端转发的来自推送服务器的推送消息为用于预加载的消息,控制下载所述推送消息对应的主文档和/或资源。
在其中,可以在步骤S710之前,对所述推送消息进行解析,以确定所述推送消息的类型,并执行相应的处理。例如,在所述推送消息为用于通知的消息的情况下,控制在所述客户端执行对应于所述推送消息的通知操作。
在步骤S720,将所下载的页面主文档和/或资源缓存在客户端本地对应于所述对象的缓存区。
在步骤S730,响应于用户在所述客户端发起的针对对象的操作,在所述客户端本地对应于所述对象的缓存区查找到所述主文档和/或所述资源的情况下,从所述客户端本地获取所述主文档和/或所述资源。
具体地,可以通过拦截所述客户端响应于所述操作发起的针对所述对象的页面主文档请求和/或资源请求,并基于拦截到的所述主文档请求和/或资源请求,在客户端本地查找以判断是否存在与所述主文档请求对应的主文档和/或与所述资源请求对应的资源。
在未查找到所述主文档和/或所述资源的情况下,还可以控制向服务器请求获取所述主文档和/或所述资源。
【页面加载装置】
图8是示出了根据本公开一实施例的页面加载装置的结构的示意性方框图。其中,装置的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图8所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
下面就装置可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文相关的描述,这里不再赘述。
如图8所示,页面加载装置800可以包括:服务运行器启动装置810和服务运行器820。
作为本公开的一个示例,服务运行器启动装810可以响应于来自推送服务器的推送消息,在客户端启动与所述推送消息所针对的对象对应的服务运行器,所述对象是以所述客户端为运行平台的应用或页面。
服务运行器820可以在所述推送消息为用于预加载的消息的情况下,控制下载所述推送消息对应的主文档和/或资源,并将所下载的页面主文档和/或资源缓存在客户端本地。
可选地,服务运行器启动装置810还可以响应于用户在所述客户端发起的针对对象的操作,在所述客户端启动与所述对象对应的服务运行器。所述服务运行器820还可以在判定在客户端本地存在所述主文档和/或所述资源的情况下,从所述客户端本地获取所述主文档和/或所述资源。
可选地,所述服务运行器还可以拦截所述客户端响应于所述操作发起的针对所述对象的页面主文档请求和/或资源请求,并基于拦截到的所述主文档请求和/或资源请求,在客户端本地查找以判断是否存在与所述主文档请求对应的主文档和/或与所述资源请求对应的资源。
可选地,该装置还可以包括:文档解析装置以及资源请求装置(未示出)。文档解析装置可以解析从所述客户端本地中查找到的与所述主文档请求对应的主文档。资源请求装置可以基于对所述主文档的解析结果,发起获取与所述主文档关联的资源的资源请求。
可选地,在未查找到所述主文档和/或所述资源的情况下,所述服务运行器还可以控制向服务器请求获取所述主文档和/或所述资源。
可选地,该装置还可以包括:客户端启动装置,用于响应于来自推送服务器的推送消息,启动所述客户端。
可选地,所述推送消息可以包括对象字段,用于指定其所关联的对象。所述服务运行器启动装置可以从所述推送消息的对象字段识别其所关联的对象,以启动所述服务运行器。
上述装置可以具有的功能模块以及各功能模块可以执行的操作可以参见上文的相关描述,在此不再赘述。
【为对象提供页面加载服务的装置】
图9示出了根据本公开一实施例的为对象提供页面加载服务的装置的结构的示意性方框图。其中,装置的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图7所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
下面就装置可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文相关的描述,这里不再赘述。
如图9所示,该为对象提供页面加载服务的装置(简称服务装置)900可以包括主文档和/或资源下载装置910、主文档和/或资源缓存装置920和主文档和/或资源获取装置930。其中,所述对象以客户端为运行平台,
主文档和/或资源下载装置910可以响应于客户端转发的来自推送服务器的推送消息为用于预加载的消息,控制下载所述推送消息对应的主文档和/或资源。
主文档和/或资源缓存装置920可以将所下载的页面主文档和/或资源缓存在客户端本地对应于所述对象的缓存区。
主文档和/或资源获取装置930可以响应于用户在所述客户端发起的针对对象的操作,在所述客户端本地对应于所述对象的缓存区查找到所述主文档和/或所述资源的情况下,从所述客户端本地获取所述主文档和/或所述资源。
作为本公开的一个示例,该服务装置900还可以包括:推送消息解析装置(图中未示出)。推送消息解析装置可以对所述推送消息进行解析,以确定所述推送消息的类型,并执行相应的处理。
作为本公开的一个示例,该服务装置900还可以包括:通知装置(图中未示出)。通知装置可以在所述推送消息为用于通知的消息的情况下,控制在所述客户端执行对应于所述推送消息的通知操作。
作为本公开的一个示例,该服务装置900还可以包括:网络请求拦截装置和主文档和/或资源查找装置(图中未示出)。
网络请求拦截装置可以拦截所述客户端响应于所述操作发起的针对所述对象的页面主文档请求和/或资源请求。主文档和/或资源查找装置可以基于拦截到的所述主文档请求和/或资源请求,在客户端本地查找以判断是否存在与所述主文档请求对应的主文档和/或与所述资源请求对应的资源。
在未查找到所述主文档和/或所述资源的情况下,主文档和/或资源下载装置910还可以用于控制向服务器请求获取所述主文档和/或所述资源。
上述装置可以具有的功能模块以及各功能模块可以执行的操作可以参见上文的相关描述,在此不再赘述。
图10示出了根据本发明一实施例的计算设备的结构示意图。
参见图10,计算设备1000包括存储器1010和处理器1020。
处理器1020可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器1020可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器1020可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或者现场可编程逻辑门阵列(FPGA,Field Programmable Gate Arrays)。
存储器1010可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器1020或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器1010可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器1010可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器1010上存储有可处理代码,当可处理代码被处理器1020处理时,可以使处理器1020执行上文述及的方法。
上文中已经参考附图详细描述了根据本发明的为对象提供页面加载服务的方法、装置和客户端。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (38)

1.一种页面加载方法,其特征在于,包括:
响应于来自推送服务器的推送消息,在客户端启动与所述推送消息所针对的对象对应的服务运行器,所述对象是以所述客户端为运行平台的应用或页面;
在所述推送消息为用于预加载的消息的情况下,所述服务运行器控制下载所述推送消息对应的主文档和/或资源,并将所下载的页面主文档和/或资源缓存在客户端本地。
2.根据权利要求1所述的方法,其特征在于,所述服务运行器将所下载的页面主文档和/或资源缓存在所述客户端本地对应于所述服务运行器的缓存区。
3.根据权利要求1所述的方法,其特征在于,所述服务运行器对所述推送消息进行解析,以确定所述推送消息的类型,并执行相应的处理。
4.根据权利要求1所述的方法,其特征在于,在所述推送消息为用于预加载的消息的情况下,
所述服务运行器对所述推送消息进行解析,以获取所述推送消息所包括的要下载的页面主文档和/或资源的列表信息,并且
其中,所述服务运行器基于所述列表信息包括的下载地址,控制下载所述推送消息对应的页面主文档和/或资源。
5.根据权利要求1所述的方法,其特征在于,还包括:
在所述推送消息为用于通知的消息的情况下,所述服务运行器控制在所述客户端执行对应于所述推送消息的通知操作。
6.根据权利要求1所述的方法,其特征在于,还包括:
响应于用户在所述客户端发起的针对对象的操作,在所述客户端启动与所述对象对应的服务运行器;以及
在所述服务运行器判定在客户端本地存在所述主文档和/或所述资源的情况下,从所述客户端本地获取所述主文档和/或所述资源。
7.根据权利要求6所述的方法,其特征在于,还包括:
所述服务运行器拦截所述客户端响应于所述操作发起的针对所述对象的页面主文档请求和/或资源请求;
基于拦截到的所述主文档请求和/或资源请求,所述服务运行器在客户端本地查找以判断是否存在与所述主文档请求对应的主文档和/或与所述资源请求对应的资源。
8.根据权利要求6所述的方法,其特征在于,还包括:
所述服务运行器在客户端本地对应于所述服务运行器的缓存区进行查找。
9.根据权利要求6所述的方法,其特征在于,还包括:
解析从所述客户端本地中查找到的与所述主文档请求对应的主文档;以及
基于对所述主文档的解析结果,发起获取与所述主文档关联的资源的资源请求。
10.根据权利要求6所述的方法,其特征在于,还包括:
在未查找到所述主文档和/或所述资源的情况下,所述服务运行器控制向服务器请求获取所述主文档和/或所述资源。
11.根据权利要求1所述的方法,其特征在于,
所述推送消息是所述推送服务器响应于接收到所述对象对应的服务器发送的更新消息而发送的;或者
所述推送消息是所述推送服务器周期性地发送的。
12.根据权利要求1所述的方法,其特征在于,还包括:
响应于来自推送服务器的推送消息,启动所述客户端。
13.根据权利要求12所述的方法,其特征在于,
所述推送消息包括对象字段,用于指定其所关联的对象,
所述客户端从所述推送消息的对象字段识别其所关联的对象,以启动所述服务运行器。
14.根据权利要求1所述的方法,其特征在于,
所述对象在所述客户端注册并且安装成功;并且/或者
所述对象已在所述推送服务器注册,并且已授权所述推送服务器向所述对象对应的服务运行器推送所述推送消息。
15.根据权利要求1所述的方法,其特征在于,
所述服务运行器通过与所述对象对应的缓存接口将所下载的主文档和/或资源缓存在客户端本地;并且/或者
所述服务运行器通过通知接口控制对应于所述推送消息的通知操作;并且/或者
所述服务运行器通过网络请求接口请求获取所述主文档和/或资源。
16.根据权利要求1所述的方法,其特征在于,所述客户端是基于Web标准内核的客户端,所述对象是Web应用或Web页面。
17.一种为对象提供页面加载服务的方法,所述对象以客户端为运行平台,该方法包括:
响应于客户端转发的来自推送服务器的推送消息为用于预加载的消息,控制下载所述推送消息对应的主文档和/或资源;
将所下载的页面主文档和/或资源缓存在客户端本地对应于所述对象的缓存区;
响应于用户在所述客户端发起的针对对象的操作,在所述客户端本地对应于所述对象的缓存区查找到所述主文档和/或所述资源的情况下,从所述客户端本地获取所述主文档和/或所述资源。
18.根据权利要求17所述的方法,其特征在于,还包括:
对所述推送消息进行解析,以确定所述推送消息的类型,并执行相应的处理。
19.根据权利要求18所述的方法,其特征在于,还包括:
在所述推送消息为用于通知的消息的情况下,控制在所述客户端执行对应于所述推送消息的通知操作。
20.根据权利要求17所述的方法,其特征在于,还包括:
拦截所述客户端响应于所述操作发起的针对所述对象的页面主文档请求和/或资源请求;
基于拦截到的所述主文档请求和/或资源请求,在客户端本地查找以判断是否存在与所述主文档请求对应的主文档和/或与所述资源请求对应的资源。
21.根据权利要求17所述的方法,其特征在于,还包括:
在未查找到所述主文档和/或所述资源的情况下,控制向服务器请求获取所述主文档和/或所述资源。
22.根据权利要求17所述的方法,其特征在于,所述客户端是基于Web标准内核的客户端,所述对象是Web应用或Web页面。
23.根据权利要求17所述的方法,其特征在于,还包括:
为所述对象注册与其对应的服务运行器,
其中,如权利要求17-22中任何一项所述的方法是由所述服务运行器执行的。
24.一种页面加载装置,其特征在于,包括:
服务运行器启动装置,用于响应于来自推送服务器的推送消息,在客户端启动与所述推送消息所针对的对象对应的服务运行器,所述对象是以所述客户端为运行平台的应用或页面;
服务运行器,用于在所述推送消息为用于预加载的消息的情况下,控制下载所述推送消息对应的主文档和/或资源,并将所下载的页面主文档和/或资源缓存在客户端本地。
25.根据权利要求24所述的装置,其特征在于,
服务运行器启动装置还用于响应于用户在所述客户端发起的针对对象的操作,在所述客户端启动与所述对象对应的服务运行器;
所述服务运行器还用于在判定在客户端本地存在所述主文档和/或所述资源的情况下,从所述客户端本地获取所述主文档和/或所述资源。
26.根据权利要求25所述的装置,其特征在于,所述服务运行器还用于拦截所述客户端响应于所述操作发起的针对所述对象的页面主文档请求和/或资源请求,并基于拦截到的所述主文档请求和/或资源请求,在客户端本地查找以判断是否存在与所述主文档请求对应的主文档和/或与所述资源请求对应的资源。
27.根据权利要求24所述的装置,其特征在于,还包括:
文档解析装置,用于解析从所述客户端本地中查找到的与所述主文档请求对应的主文档;以及
资源请求装置,用于基于对所述主文档的解析结果,发起获取与所述主文档关联的资源的资源请求。
28.根据权利要求24所述的装置,其特征在于,在未查找到所述主文档和/或所述资源的情况下,所述服务运行器还控制向服务器请求获取所述主文档和/或所述资源。
29.根据权利要求24所述的装置,其特征在于,还包括:
客户端启动装置,用于响应于来自推送服务器的推送消息,启动所述客户端。
30.根据权利要求29所述的方法,其特征在于,所述推送消息包括对象字段,用于指定其所关联的对象,
所述服务运行器启动装置从所述推送消息的对象字段识别其所关联的对象,以启动所述服务运行器。
31.一种为对象提供页面加载服务的装置,所述对象以客户端为运行平台,该装置包括:
主文档和/或资源下载装置,用于响应于客户端转发的来自推送服务器的推送消息为用于预加载的消息,控制下载所述推送消息对应的主文档和/或资源;
主文档和/或资源缓存装置,用于将所下载的页面主文档和/或资源缓存在客户端本地对应于所述对象的缓存区;
主文档和/或资源获取装置,用于响应于用户在所述客户端发起的针对对象的操作,在所述客户端本地对应于所述对象的缓存区查找到所述主文档和/或所述资源的情况下,从所述客户端本地获取所述主文档和/或所述资源。
32.根据权利要求31所述的装置,其特征在于,还包括:
推送消息解析装置,用于对所述推送消息进行解析,以确定所述推送消息的类型,并执行相应的处理。
33.根据权利要求32所述的装置,其特征在于,还包括:
通知装置,用于在所述推送消息为用于通知的消息的情况下,控制在所述客户端执行对应于所述推送消息的通知操作。
34.根据权利要求31所述的装置,其特征在于,还包括:
网络请求拦截装置,用于拦截所述客户端响应于所述操作发起的针对所述对象的页面主文档请求和/或资源请求;
主文档和/或资源查找装置,用于基于拦截到的所述主文档请求和/或资源请求,在客户端本地查找以判断是否存在与所述主文档请求对应的主文档和/或与所述资源请求对应的资源。
35.根据权利要求31所述的装置,其特征在于,在未查找到所述主文档和/或所述资源的情况下,主文档和/或资源下载装置还用于控制向服务器请求获取所述主文档和/或所述资源。
36.一种为对象提供页面加载服务的客户端,其特征在于,所述客户端执行如权利要求1-16和/或17-23中任何一项所述的方法。
37.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-23中任何一项所述的方法。
38.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至23中任一项所述的方法。
CN201811613739.4A 2018-12-27 2018-12-27 为对象提供页面加载服务的方法、装置及客户端 Active CN111382344B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811613739.4A CN111382344B (zh) 2018-12-27 2018-12-27 为对象提供页面加载服务的方法、装置及客户端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811613739.4A CN111382344B (zh) 2018-12-27 2018-12-27 为对象提供页面加载服务的方法、装置及客户端

Publications (2)

Publication Number Publication Date
CN111382344A true CN111382344A (zh) 2020-07-07
CN111382344B CN111382344B (zh) 2023-04-28

Family

ID=71222350

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811613739.4A Active CN111382344B (zh) 2018-12-27 2018-12-27 为对象提供页面加载服务的方法、装置及客户端

Country Status (1)

Country Link
CN (1) CN111382344B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2298908A1 (en) * 1999-03-11 2000-09-11 Lucent Technologies Inc. Method and apparatus for load sharing on a wide area network
CN104796439A (zh) * 2014-01-16 2015-07-22 腾讯科技(深圳)有限公司 网页推送方法、客户端、服务器及系统
CN105760405A (zh) * 2014-12-19 2016-07-13 阿里巴巴集团控股有限公司 用于加载web页面的网络资源获取方法、缓存方法及装置
CN106611032A (zh) * 2015-10-27 2017-05-03 广州市动景计算机科技有限公司 一种网页预加载的方法及装置
CN107402938A (zh) * 2016-05-22 2017-11-28 广州市动景计算机科技有限公司 页面展示方法、装置和客户端设备
US20170371974A1 (en) * 2016-06-22 2017-12-28 Guangzhou Ucweb Computer Technology Co., Ltd. Method for loading webpage, client and programmable device
CN108228282A (zh) * 2018-04-04 2018-06-29 北京三快在线科技有限公司 用于网站页面加载的方法及装置
CN108287836A (zh) * 2017-01-09 2018-07-17 腾讯科技(深圳)有限公司 一种资源缓存方法及装置
CN108287737A (zh) * 2017-07-13 2018-07-17 广州市动景计算机科技有限公司 Service Worker启动方法、装置及电子设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2298908A1 (en) * 1999-03-11 2000-09-11 Lucent Technologies Inc. Method and apparatus for load sharing on a wide area network
CN104796439A (zh) * 2014-01-16 2015-07-22 腾讯科技(深圳)有限公司 网页推送方法、客户端、服务器及系统
CN105760405A (zh) * 2014-12-19 2016-07-13 阿里巴巴集团控股有限公司 用于加载web页面的网络资源获取方法、缓存方法及装置
CN106611032A (zh) * 2015-10-27 2017-05-03 广州市动景计算机科技有限公司 一种网页预加载的方法及装置
CN107402938A (zh) * 2016-05-22 2017-11-28 广州市动景计算机科技有限公司 页面展示方法、装置和客户端设备
US20170371974A1 (en) * 2016-06-22 2017-12-28 Guangzhou Ucweb Computer Technology Co., Ltd. Method for loading webpage, client and programmable device
CN107526751A (zh) * 2016-06-22 2017-12-29 广州市动景计算机科技有限公司 网页的加载方法、客户端、网页服务器及可编程设备
CN108287836A (zh) * 2017-01-09 2018-07-17 腾讯科技(深圳)有限公司 一种资源缓存方法及装置
CN108287737A (zh) * 2017-07-13 2018-07-17 广州市动景计算机科技有限公司 Service Worker启动方法、装置及电子设备
CN108228282A (zh) * 2018-04-04 2018-06-29 北京三快在线科技有限公司 用于网站页面加载的方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JHONXIE: "web-push实现原理及细节介绍" *
陈兵,王立松: "基于哈希链表和时间链表的HTTP代理缓存机制的实现" *

Also Published As

Publication number Publication date
CN111382344B (zh) 2023-04-28

Similar Documents

Publication Publication Date Title
CA2878207C (en) Evaluating application compatibility
WO2020199751A1 (zh) 用于加载页面图片的方法、装置和电子设备
US10218633B2 (en) Implementation of a service that coordinates the placement and execution of containers
US9027100B2 (en) Client-side ad caching for lower ad serving latency
US20190050493A1 (en) Page processing method and device thereof
CN113468456B (zh) 网页渲染方法及装置、电子设备和计算机可读存储介质
CN114253535A (zh) H5页面多语言渲染方法及装置
CN106817388B (zh) 虚拟机、宿主机获取数据的方法、装置及访问数据的系统
US9088462B2 (en) Common web accessible data store for client side page processing
WO2001086428A3 (en) Mechanism and apparatus for uri-addressable repositories of service advertisements and other content in a distributed computing environment
CN110968331B (zh) 应用程序运行的方法和装置
CN111367596A (zh) 一种实现业务数据处理的方法及装置和客户端
CN111212183A (zh) 一种用于运行寄宿应用的方法与设备
CN111259283B (zh) 一种页面资源预加载的处理方法及装置,电子和存储设备
CN109325194B (zh) 页面访问方法、装置、设备以及存储介质
US10341454B2 (en) Video and media content delivery network storage in elastic clouds
US20120096096A1 (en) Mobile communication terminal to provide widget expansion function using message communication, and operation method of the mobile communication terminal
CN110858238B (zh) 一种数据处理的方法和装置
CN111382344B (zh) 为对象提供页面加载服务的方法、装置及客户端
EP3853725A1 (en) Connected application experience
CN115562871A (zh) 内存分配管理的方法和装置
US11379653B2 (en) Rendering method for on-demand loading of PDF file on network
CN113626741A (zh) 一种移动客户端网页加载的方法及设备
US20210224470A1 (en) Method and device for processing static page data
CN113010816A (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
GR01 Patent grant
GR01 Patent grant