针对原生移动应用中托管的网络应用的网页加速的制作方法

文档序号:16807420发布日期:2019-02-10 13:11阅读:173来源:国知局
针对原生移动应用中托管的网络应用的网页加速的制作方法

原生移动应用和网站两者都可以为了原生移动应用和/或网站的用户的利益而提供内容。开发应用的实体可以开发原生应用和网站应用两者。例如,用户可以将原生应用下载到客户端设备并且经由该原生应用来访问应用内容。在另一个示例中,用户可以经由网站来访问应用内容。通常而言,原生应用使用应用编程接口(api)技术来访问应用内容,而网站应用使用网站技术(例如,浏览器、html、解析、渲染)来访问应用内容。在一些情况下,原生应用可以托管来自于远程网络(web)服务器的网页。然而,在这些情况下,所托管的网页的下载时间、解析时间、和渲染速度可能是缓慢和低效的。进而,用户查看原生移动应用所托管的网页和/或与该网页交互的体验可能并不令人满意。



技术实现要素:

提供了该发明内容以用简化的形式引入在以下的具体实施方式中进一步描述的概念的选择。该发明内容不旨在标识所要求保护的主题的关键特征或重要特征,也不旨在用来帮助确定所要求保护的主题的范围。

概括而言,本公开一般涉及用于对由原生移动应用所托管的网页的加载、解析和渲染进行加速的系统和方法。在一个方面中,至少包括用于渲染由该原生移动应用所托管的网页的资源的清单文件可以被存储在本地网络高速缓存中。可以经由该原生移动应用向与该原生移动应用相关联的网站发送针对该网页的请求。在该网页的初始内容被加载时,存储在该本地网络高速缓存中的资源可以被加载到浏览器文档对象模型(dom)中。该网页可以在用户界面中在原生移动应用内被渲染。

在另一个方面中,呈现了一种由原生移动应用预加载网页数据的方法。可以从原生移动应用向服务发送针对清单文件的最新版本的请求。该清单文件可以至少包括用于渲染由该原生移动应用所托管的网页的资源。当该服务具有该清单文件的最新版本时,该清单文件的最新版本可以从该服务被下载。该清单文件的最新版本可以被存储在本地网络高速缓存中。

在另外的方面中,响应于接收到对原生移动应用图标的选择,可以启动与该原生移动应用图标相关联的原生移动应用。可以向服务发送针对清单文件的请求。该清单文件可以至少包括用于渲染由该原生移动应用所托管的网页的资源。该清单文件可以从该服务被下载并且被存储在本地网络高速缓存中。

附图说明

参考附图对具体实施方式进行了描述。在附图中,附图标记最左侧的(多个)数字标识该附图标记首次出现的附图。附图标记在说明书和附图的不同实例中使用的相同的附图标记可以指示相似或相同的项目。

图1示出了根据示例方面的示例性增强型原生移动应用系统,其用于对由原生移动应用所托管的网页的加载、解析、和渲染进行加速。

图2示出了根据现有技术的示例的用于加载网站的顺序图。

图3示出了根据示例方面的用于对由原生移动应用所托管的网页的加载、解析、和渲染进行加速的顺序图。

图4示出了根据示例方面的用于对由原生移动应用所托管的网页的加载、解析和渲染进行加速的示例性方法。

图5示出了根据示例方面的用于由原生移动应用预加载网页数据的示例性方法。

图6示出了适用于实现在本文中所公开的增强型原生移动应用技术的计算系统,其包括图中所示出以及以下在技术公开中所讨论的任何环境、架构、元件、过程、用户界面、和操作场景及顺序。

具体实施方式

本公开的方面一般地涉及对由原生移动应用所托管的网页的加载、解析、和渲染进行加速。例如,对由原生移动应用所托管的网页的加载、解析和渲染进行加速的第一阶段可以包括使用该原生移动应用预加载网页数据。例如,网页数据可以通过下载并存储在该原生移动应用中渲染该网页所需的与网页/网站相关联的资源。所述资源可以被存储在本地网络高速缓存中。在一个示例中,所述资源可以包括在从(例如,在云端的)服务所取回的清单文件。例如,原生移动应用可以针对该清单文件的最新版本向服务发送请求。在一个示例中,当原生移动应用已经具有包括清单文件内容(例如,资源)的清单文件的最新版本时,取回该清单文件就不是必须的。当服务具有比当前在本地网络高速缓存处所存储的清单文件的版本更加新近版本的清单文件时,该原生移动应用可以下载并存储清单文件的最新版本。在一个示例中,在清单文件中所包括的资源包括渲染网页所需的javascript和层叠样式表(css)框架。就这一点而言,当通过原生移动应用针对由该原生移动应用所托管的网页进行请求时,不一定要从服务/网站下载已经针对该网页而被存储在本地网络高速缓存中的资源。进而,该网页被快速、高效并且以比要使用当前网页技术在用户界面中渲染的网页更少的时间在用户界面中在原生移动应用内被渲染。由此,可以领会到的技术效果在于,通过在本地网络高速缓存中存储渲染网页所需的资源,可以降低网络往返成本。

如上文所讨论的,原生应用使用应用编程接口(api)技术来访问应用内容,而网站应用则使用网站技术(例如,浏览器、html、解析、渲染)来访问应用内容。在一些情况下,原生应用可以托管来自于远程网络服务器的网页。在这种情况下,原生应用使用api技术来取回应用数据(在一些情况下,该应用数据可以被预先加载)并且使用网站技术来取回网页数据。然而,在这些情况下,所托管网页的下载时间、解析时间、和渲染速度可能是缓慢和低效的。进而,用户查看原生移动应用所托管的网页和/或与之交互的体验可能并不令人满意。由此,在本文中所描述的方面包括对由原生移动应用所托管的网页的加载、解析和渲染进行加速。如上文所讨论的,对由原生移动应用所托管的网页的加载、解析和渲染进行加速的第一阶段可以包括使用该原生移动应用来预加载网页数据。就这一点而言,本公开的原生移动应用正在预加载能够在之后的时间被访问和/或被使用的网页/网站数据(例如,不是在应用自身中被使用的原生移动应用数据)。作为对比,在本文的现有技术中所描述的原生移动应用可以预加载在原生移动应用自身中被使用的数据(即,移动应用数据)。

在多个方面,对由原生移动应用所托管的网页的加载、解析和渲染进行加速的第二阶段可以包括:在网页的初始有效载荷进行加载的同时将本地网络高速缓存中所存储的资源加载到浏览器文档对象模型(dom)中。例如,在资源已经被取回并且被存储在本地网络高速缓存后的某一时间点,原生移动应用的用户可以访问由原生移动应用所托管的网页。在一个示例中,用户可以选择与由原生移动应用所托管的网站和/或网页相关联的图标。在一个示例中,所述图标可以包括指向网站和/或网页的链接(例如,url)。响应于接收到对与由原生移动应用所托管的网站和/或网页相关联的图标的选择,原生移动应用可以向对应的网站发送针对该网页的请求。在网页的初始有效载荷(例如,根超文本标记语言(html)页面)进行加载的同时,存储在本地网络高速缓存中的资源可以被加载到浏览器dom中。当网页的初始有效载荷被返回时,可能需要获得另外的资源以渲染该网页。所述另外的资源仅包括没有预加载/存储在本地网络高速缓存中的那些资源。例如,仅需要取回网页所需的一小部分资源,而不要求网页所需的所有资源都被下载(对于当前的网页技术而言通常如此)。就这一点而言,可以以比使用当前网页技术下载资源所需的更少的时间来下载用于网页的资源。在一个示例中,如上文在第一阶段中所讨论的,将资源存储在本地网络高速缓存中可以节省大约三秒的下载时间。

此外,在网页的初始有效载荷进行加载的同时将存储在本地网络高速缓存中的资源加载到浏览器dom中可以促进以比当前网页技术所用的更少的时间来渲染该网页。例如,在当前网页技术中,在网页的初始有效载荷进行加载的同时,客户端是空闲的并且渲染该网页所需的所有资源在它们被加载到浏览器dom之前都被请求并且被下载。在本公开的技术中,如本文所描述的,在初始有效载荷被返回以及任意另外的资源被请求之前,许多资源在网页的初始有效载荷进行加载的同时就被加载到浏览器dom中。在一个示例中,在网页的初始有效载荷进行加载的同时将存储在本地网络高速缓存中的资源加载到浏览器dom中可以节省大约两秒将资源加载到浏览器dom中的时间。由此,使用本公开的技术加载、解析和渲染原生移动应用所托管的网页总共可以节省大约五秒。在一个示例中,从用户选择与原生移动应用内的网站相关联的图标的时刻到网页和/或网站在原生移动应用内被渲染的时刻节省了大约30%的时间。就这一点而言,可以意识到的另一种技术效果在于,快速且高效地渲染原生移动应用所托管的网页促进引人注目的视觉和功能体验以允许用户有效地查看用户界面并与之交互,从而快速、容易、且有效地查看由原生移动应用所托管的网页。可以意识到的另一种技术效果在于,通过预加载网站/网页资源/数据而降低用户访问网站时的下载,处理器负载可以降低,存储可以被节约,并且网络带宽的使用可以降低。

现在参考附图,其中相同的附图标记表示贯穿几个附图相同的元素,将对本发明的方面和示例性操作环境进行描述。参考图1,示出了用于对由原生移动应用所托管的网页的加载、解析和渲染进行加速的原生移动应用系统100的一个方面。在多个方面,原生移动应用系统100可以在客户端计算设备104上被实现。在基本配置中,客户端计算设备104是具有输入元件和输出元件的手持计算机。客户端计算设备104可以是用于实现对由原生移动应用所托管的网页的加载、解析和渲染进行加速的原生移动应用系统100的任何合适的计算设备。例如,客户端计算设备104可以是以下中的至少一个:移动电话;智能电话;平板电脑;板式电脑;智能手表;可穿戴计算机;个人计算机;台式计算机;膝上计算机;游戏设备/计算机(例如,xbox);电视;等等。该列表仅是示例性的并且不应当被认为是进行限制。用于对由原生移动应用所托管的网页的加载、解析和渲染进行加速的原生移动应用系统100的任何合适的计算设备104都可以被利用。

在多个方面,原生移动应用系统100可以被实现在服务106上。服务106可以通过网络105往来于客户端计算设备104提供数据。在多个方面,原生移动应用系统100可以在多于一个服务106(例如,多个服务106)上被实现。在一个示例中,服务106包括云服务。在另一个示例中,服务106包括内容传递网络(cdn)和/或应用服务。在一些示例中,服务106包括多个cdn和/或多个应用服务。在一种情况下,应用服务可以包括诸如sharepoint之类的服务。如上文所讨论的,服务106可以通过网络105往来于客户端计算设备104提供数据。数据可以通过适于传送数据的网络进行通信。在一些方面中,网络是诸如互联网之类的分布式计算机网络。就这一点而言,网络可以包括局域网(lan)、广域网(wan)、互联网、无线和有线传输介质。在一些方面中,原生移动应用系统100可以在客户端计算设备104和服务106上被实现。

本文所描述的方面和功能可以经由多种计算系统来操作,包括但不限于台式计算机系统、有线和无线通信系统、移动计算系统(例如,移动电话、上网本、平板或板式计算机、笔记本计算机、和膝上型计算机)、手持设备、微处理器系统、基于微处理器的或可编程消费型电子产品、小型计算机、和大型计算机。

另外,本文所描述的方面和功能可以在分布式系统(例如,基于云的计算系统)上进行操作,其中应用功能、存储器、数据存储和取回以及各种操作功能可以通过分布式计算网络(例如,互联网或内联网)而彼此远离地进行操作。各种类型的用户界面和信息可以经由板载计算设备显示器或者经由与一个或多个计算设备相关联的远程显示单元而被显示。例如,各种类型的用户界面和信息可以在各种类型的用户界面和信息被投射于其上的墙壁表面上进行显示和交互。与本发明的方面可以利用其进行实践的许多计算系统的交互包括键击输入、触摸屏输入、语音或其他音频输入、手势输入——其中相关联的计算设备装备有用于捕捉和解译用于控制计算设备的功能的用户手势的检测(例如,相机)功能,等等。

如图1所示,客户端计算设备104可以包括预加载器框架110、版本控制标签112、本地网络高速缓存114、网络加速器116、和托管网络视图118。各种组件可以使用硬件、软件或者硬件和软件的组合来实现。在示例中,预加载器框架110可以是位于客户端计算设备104处的原生移动应用的一部分。该原生移动应用可以包括能够从应用商店下载至客户端计算设备104的任何应用。在一个示例中,该原生移动应用是sharepoint移动应用。该原生移动应用可以被下载到在客户端计算设备104上运行的任何平台(例如,任何操作系统)。预加载器框架110可以被配置为将针对清单文件的请求从原生移动应用发送至服务106。例如,当原生移动应用被启动时(步骤(1)),该原生移动应用可以开启预加载器框架110。当预加载器框架110开启时,该预加载器框架可以向服务106发送针对清单文件的请求。在一个示例中,该请求可以被发送至cdn网络。该清单文件可以包括用于渲染由原生移动应用所托管的网页的资源。在一个示例中,所述资源可以至少包括与原生移动应用相关联的javascript和层叠样式表(css)框架。

在多个方面中,版本控制标签112可以利用版本号对清单文件进行标记。例如,被发送至服务106的针对清单文件的请求可以指示清单文件的哪个版本当前被存储在本地网络高速缓存114中。就这一点而言,当针对清单文件的请求被发送至服务106时,该服务可以确定其是否具有该清单文件的较新近的版本(步骤(2))。当该服务具有该清单文件的较新近的版本时,就不需要下载清单文件(例如,框架资源)。就这一点而言,该清单文件仅在需要时(例如,在服务106中存在较新近/较新版本时)被下载。当该服务具有该清单文件的较新近的版本时,预加载器框架110可以下载该清单文件及其内容(例如,资源)(步骤(3))。在一个示例中,可以下载多达30个文件和/或1.5mb的数据。

当该清单文件被预加载器框架110下载时,预加载器框架110可以将该清单文件存储在本地网络高速缓存114中(步骤(4))。该本地网络高速缓存可以包括适用于高速缓存和/或存储清单文件和/或清单文件中所包括的资源的任何本地网络高速缓存。在多个方面中,托管的网络视图118可以包括针对原始移动应用的用户的浏览器体验。例如,用户可以在原始移动应用中选择与网站相关联的图标(步骤(5))。响应于接收到对与网站相关联的图标的选择,原始移动应用可以向服务106(例如,网站)发送针对内容的请求(步骤(6))。在一个示例中,该请求被发送至应用服务。在一个示例中,该应用服务与该原生移动应用相关联。在一种情况下,该应用服务是sharepointonline。在一些示例中,该内容可以包括与网站相关联的一个或多个网页。在一些示例中,该内容可以包括初始内容(例如,根/初始html页面)。在初始内容进行加载时,网络加速器116可以从本地网络高速缓存114取回所存储的清单文件(例如,资源)并且将所述资源加载到存储器中(步骤(7))。例如,网络加速器116可以将存储在本地网络高速缓存114中的资源加载到浏览器dom中。dom是用于表示html、xhtml和xml文档中的对象并且与之交互的跨平台且与语言无关的规定,并且对于本领域技术人员而言是公知的。在另一个示例中,在初始内容进行加载的同时,资源可以被预编译到浏览器dom中(步骤(7))。当初始内容完成加载时,该初始内容可以被发送至原生移动应用(步骤(8))。在一些情况下,在网站和/或网页可以在托管网络视图118中被渲染之前必须要获得另外的资源,这将关于图3更加详细地描述。

图2示出了根据现有技术的示例的用于加载网站的顺序图200。顺序图200包括渲染器202、脚本dom204、高速缓存206、浏览器208、和网站210。当用户从浏览器208中识别网站210时,请求可以被发送至网站210以加载初始网页。当初始网页完成加载时,该初始网页可以被返回至浏览器208。可以从浏览器208向网站210发送渲染网页所需的多个资源的请求。所述多个资源被逐个返回至浏览器208。当初始网页和渲染网页的所需的所有资源都被返回至浏览器208时,浏览器208可以将所述资源加载到脚本dom204中。当脚本被加载时,该脚本可以在渲染器202处被处理,网页可以在其处被呈现在用户界面上。用于加载网页的顺序图200示出了为了使用当前(例如,现有技术的)网页技术来加载网页的过程的顺序如何。

图3示出了根据示例方面的用于对由原生移动应用所托管的网页的加载、解析和渲染进行加速的顺序图。顺序图300包括渲染器302、脚本dom304、本地网络高速缓存306、原生移动应用308、cdn310、和应用服务212。在第一阶段,在启动原生移动应用308时,原生移动应用308可以向cdn310发送针对清单文件的请求。该清单文件包括用于渲染由原生移动应用308所托管的网页的资源(例如,网页数据)。在一些示例中,所述资源包括与原生移动应用308相关联的javascript和css框架。原生移动应用308可以从cdn310下载资源。当从cdn310下载资源时,原生移动应用308可以将所述资源存储在本地网络高速缓存306中。如上文所讨论的,所存储的资源与可以在未来时间渲染的网页相关联。

在第二阶段,在原生移动应用308的用户查看原生移动应用308和/或与之交互时,该用户可以访问与原生移动应用308相关联的网站和/或网页。就这一点而言,该用户可以选择原生移动应用308内与网站相关联的图标。响应于接收到对与网站相关联的图标的选择,渲染器302可以向应用服务312(例如,与原生移动应用308相关联的应用服务)发起请求以加载该网站。在该网站的初始有效载荷进行加载的同时,可以由渲染器302在原生移动应用308内呈现加载状态指示符。在另一个示例中,在该网站的初始有效载荷进行加载的同时,原生移动应用308将存储在本地网络高速缓存306中的资源加载到浏览器dom304中。除了在该网站的初始有效载荷进行加载的同时将存储在本地网络高速缓存306中的资源加载到浏览器dom304中,资源可以被预编译到浏览器304中。当初始有效载荷被返回(例如,从应用服务312下载到原生移动应用308)时,该初始有效载荷可以被加载到浏览器dom304中。如上文所讨论的,在网站的初始有效载荷进行加载的同时将存储在本地网络高速缓存306中的资源加载和预编译到浏览器dom304中可以节省大约两秒的到浏览器dom304中的加载时间。换句话说,原生移动应用308在加载网站的同时并行处理。作为对比,如图2所示,用于加载网站的当前技术则在加载网站的同时顺序处理(例如,客户端在初始有效载荷加载的同时是空闲的)。

在一些情况下,可能需要另外的资源以便渲染网站和/或网页。就这一点而言,原生移动应用308可以向应用服务312发送针对另外的(例如,租户)资源的请求。如上文所讨论的,所述另外的资源可以仅包括没有被预加载/存储在本地网络高速缓存306中的资源。在一些情况下,不需要另外的资源来渲染网站和/或网页。在该情况下,网站和/或网页可以在初始有效载荷在原生移动应用308处被下载并且被加载到浏览器dom304之后由渲染器302所渲染。进而,针对该网页可以以比当前网页技术所需的更少时间来下载资源。例如,在30个脚本中的20个脚本被存储在本地网络高速缓存306时,可以仅下载这30个脚本中的10个脚本。在一个示例中,将资源存储在本地网络高速缓存306中可以节约大约三秒的下载时间。当所需的另外的资源被返回并且在原生移动应用308处被下载时,所述另外的资源可以被加载到浏览器dom304中。在一些示例中,另外的网站和/或网页相关的内容/响应可以在原生移动应用308处被下载。网站和/或网页可以由渲染器302在用户界面中在原生移动应用308内被渲染。

现在参考图4,示出了根据示例方面的用于对由原生移动应用所托管的网页的加载、解析、和渲染进行加速的示例性方法400。方法400可以在能够通过至少一个处理器执行指令的计算设备或类似电子设备上被实现。方法400可以在操作402处开始,其中清单文件被存储在本地网络高速缓存中。在一个示例中,清单文件包括用于渲染由原生移动应用所托管的网页的资源。在一个示例中,所述资源可以至少包括与原生移动应用相关联的javascript和层叠样式表(css)框架。该原生移动应用在网页被访问、托管和启动之前访问所述资源并且将其存储在本地网络高速缓存中。就这一点而言,原生移动应用存储与关联于该原生移动应用的具体网站相关联的资源。在一些情况下,即使当资源被存储在本地网络高速缓存中时,网站也可能永远不会被访问(例如,用户可能永远不会前往该网站)。

在清单文件(例如,网页资源)被存储在本地高速缓存中(例如,在启动原生移动应用时)之后,流程继续进行至操作404,其中经由该原生移动应用向与该原生移动应用相关联的网站发送针对网页的请求。在一些示例中,请求响应于接收到对原生移动应用内的图标的选择而被发送至网站,其中该图标与该网站相关联。当请求被发送至该网站时,该网站的初始有效载荷可以被加载。在一个示例中,该初始有效载荷可以包括初始内容和/或初始/根html。

在网站的初始内容/有效载荷进行加载的同时,流程继续进行至操作406,其中存储在本地网络高速缓存中的资源被加载到浏览器dom中。在一个示例中,当存储在本地网络高速缓存中的资源被加载到浏览器dom中时,所述资源可以被预编译到浏览器dom中。在另一个示例中,在网站的初始内容/有效载荷进行加载的同时可以在原生移动应用内呈现加载状态指示符。在一个示例中,在网站的初始内容/有效载荷进行加载的同时将存储在本地网络高速缓存中的资源加载并预编译到浏览器dom中可以节省大约两秒的到浏览器dom中的加载时间。在另一个示例中,所节省的加载时间量可以基于由原生移动应用所托管的网站(例如,网络应用)和/或网页。在一些情况下,可以节省多于两秒的下载时间。在其他情况下,可以节省少于两秒的下载时间。

当网站的初始内容/有效载荷完成加载并且被下载到原生移动应用时,流程继续进行至操作408,其中该网站和/或网页在用户界面中在原生移动应用内被渲染。在一个示例中,如本文所讨论的,该网站和/或网页在客户端计算设备的用户界面中被渲染。在一些情况下,在下载了网站的初始内容/有效载荷之后以及在渲染网站和/或网页之前可以下载另外的资源。在这种情况下,如上文所讨论的,另外的资源可以仅包括没有被预加载/存储在本地网络高速缓存中的资源。进而,在一种情况下,将资源存储在本地网络高速缓存中可以节省多于三秒的下载时间。在另一种情况下,将资源存储在本地网络高速缓存中可以节省少于三秒的下载时间。

现在参考图5,示出了根据示例方面的用于由原生移动应用预加载网页数据的示例性方法500。方法500可以在能够通过至少一个处理器执行指令的计算设备或类似电子设备上实施。方法500在操作502处开始,其中从原生移动应用向服务发送针对清单文件的最新版本的请求。在一个示例中,该清单文件包括用于渲染由该原生移动应用所托管的网页和/或网站的资源。在一个示例中,用于渲染网页和/或网站的资源可以至少包括与原生移动应用相关联的javascript和层叠样式表(css)框架。该服务可以至少包括内容传递网络和原生移动应用服务。在一个示例中,该请求被发送至内容传递网络。

当从原生移动应用向服务发送针对清单文件的最新版本的请求时,流程继续进行至决策操作504,其中确定该清单文件是否为最新版本。例如,该清单文件可以用版本号被标记。就这一点而言,发送至服务的针对清单文件的请求可以指示该清单文件的哪个版本当前被存储在本地网络高速缓存中。就这一点而言,当针对清单文件的请求被发送至服务时,该服务可以确定它是否具有该清单文件的较新和/或最新版本。当该服务确定其不具有该清单文件的较新版本时,不需要下载最新的清单文件并且流程返回至操作502,在操作502处,从原生移动应用向服务发送针对清单文件的最新版本的请求(例如,在原生移动应用的下一次打开/启动时)。

当该服务确定其具有该清单文件的较新和/或最新版本时,流程继续进行至操作506,其中从该服务下载该清单文件的最新版本。在一个示例中,可以从服务下载多达30个文件/脚本和/或1.5mb的数据。在其他示例中,可以下载多于30个文件/脚本和/或1.5mb的数据。在另一示例中,可以下载少于30个文件/脚本和/或1.5mb的数据。在一个示例中,可以下载大约20个文件/脚本。在一个示例中,从服务下载清单文件大约花费3秒钟。

当从服务下载清单文件的最新版本时,流程继续进行至操作508,其中该清单文件的最新版本被存储在本地网络高速缓存中。原生移动应用可以在该原生移动应用所托管的网页被访问、托管和启动之前将该清单文件的最新版本存储在本地网络高速缓存中。就这一点而言,原生移动应用存储与关联于该原生移动应用的具体网站和/或网络应用相关联的资源。在一些情况下,即使在资源被存储在本地网络高速缓存中时,网站也可能永远不被访问(例如,用户可能永远不前往该网站)。在其他情况下,当用户通过原生移动应用访问该网站时,通过将清单文件的最新版本预加载/存储在本地网络高速缓存中,该网站和/或网页可以被快速且高效地渲染,最终得到令人满意的用户体验。

如本文所使用的术语渲染一般是指在各种计算架构中用来聚合信息的各种能力,所述信息接着能够被其他能力用来生成一个或多个图像。例如,在方法400和500的上下文内,渲染网页例如一般是指聚合用来生成共同产生所渲染的网页/网站的一个或多个图像的信息或数据。动画或其他动态也可以用来获得某些效果。

然而,可以领会到的是,在本公开的范围内可以考虑有关渲染的其他观点。例如,如本文所使用的渲染在一些情况下也可以被认为是指各种计算架构用来从出于该目的所聚合的信息而生成一个或多个图像的各种能力。关于方法400和500,渲染网页可以是指从出于该目的所聚合的信息而生成共同产生网页的一个或多个图像,所述网页接着能够被显示。

还可以意识到的是,渲染在一些场景中可以是指以上所提到的可能性的组合。例如,渲染在一些场景中可以是指聚合用来生成用于网页的一个或多个图像的信息以及接着生成该网页的一个或多个图像。此外,各种其他的步骤、过程和阶段可以在呈现应用的视图的上下文内发生,所有这些都可以被认为是呈现视图的一部分。因此,有关方法400和500的其他的变化形式包括但不限于呈现网页和/或网站。

图6示出了计算系统601,其表示其中可以实现在本文中所公开的各种应用、服务、场景、和过程的任何系统或系统的集合。计算系统601的示例包括但不限于服务器计算机、机架式服务器、云计算平台、和数据中心设备,以及任何其他类型的物理或虚拟服务器机器、容器、及其任何变型或组合。其他示例可以包括智能电话、膝上型计算机、平板计算机、台式计算机、混合计算机、游戏机、虚拟显示设备、智能电视、智能手表、和其他可穿戴设备,以及其任何变型或组合。

计算系统601可以被实现为单个装置、系统、或设备,或者可以以分布式方式被实现为多个装置、系统、或设备。计算系统601包括但不限于处理系统602、存储系统603、软件605、通信接口系统607、以及用户接口系统609。处理系统602与存储系统603、通信接口系统607、以及用户接口系统609操作性地相耦合。

处理系统602从存储系统603加载并执行软件605。软件605包括原生移动应用606,其表示关于先前图1-5所讨论的原生移动应用。当由处理系统602执行以增强对托管的网页的渲染时,软件605引导处理系统602至少针对先前实现中所讨论的各种过程、操作场景和序列而如在本文中所描述的那样操作。计算系统601可以可选地包括为了简明起见而没有讨论的额外设备、特征、或功能。

仍然参考图6,处理系统602可以包括微处理器以及从存储系统603取回软件605并执行软件605的其他电路。处理系统602可以在单个处理设备内实现,但是也可以跨在执行程序指令时协作的多个处理设备或子系统而分布。处理系统602的示例包括通用中央处理单元、专用处理器、和逻辑器件,以及任何其他类型的处理设备、其组合或变型。

存储系统603可以包括可以由处理系统602读取并且能够存储软件605的任何计算机可读存储介质。存储系统603可以包括以任何用于存储信息(例如,计算机可读指令、数据结构、程序模块、或其他数据)的方法或技术实现的易失性和非易失性、可移动和不可移动介质。存储介质的示例包括随机存取存储器、只读存储器、磁盘、光盘、闪速存储器、虚拟存储器和非虚拟存储器、盒式磁带、磁带、磁盘存储器或其他磁存储设备、或者任何其他适当的存储介质。计算机可读存储介质无论如何都不是传播信号。

除了计算机可读存储介质以外,在一些实现中,存储系统603还可以包括软件605中的至少一些软件可以内部地或外部地通过其传送的计算机可读通信介质。存储系统603可以被实现为单个存储设备,但也可以跨位于同一位置或相对于彼此分布的多个存储设备或子系统来实现。存储系统603可以包括能够与处理系统602或者可能的其他系统进行通信的额外的元件,例如控制器。

可以以程序指令来实现软件605,并且当由处理系统602执行时,所述软件605引导处理系统602如关于在本文中所示出的各种操作性场景、顺序、和过程所描述的那样操作。例如,软件605可以包括用于实现对托管的网页的增强的渲染的程序指令。

特别地,程序指令可以包括协作或以其他方式进行交互以实行在本文中所描述的各种处理和操作场景的各种组件或模块。可以以经编译或经解译的指令或者以指令的一些其他变型或组合来实施各种组件或模块。可以以同步或非同步的方式、顺序地或并行地、在单线程的环境中或在多线程的环境中、或者根据任何其他合适的执行范例、变型、或其组合来执行各种组件或模块。软件605可以包括除了原生移动应用606或者包括抑制过程606的额外的过程、程序、或组件,例如操作系统软件、虚拟机软件、或其他应用软件。软件605也可以包括固件或者可以由处理系统602执行的一些其他形式的机器可读处理指令。

通常而言,当被加载到处理系统602中并被执行时,软件605可以将合适的装置、系统、或设备(其由计算系统601所表示)全部从通用计算系统转换成专用计算系统,所述专用计算系统被定制为促进对托管的网页的增强的渲染。事实上,将软件605编码在存储系统603上可以转换存储系统603的物理结构。物理结构的具体的转换可以取决于该说明书的不同的实现中的各种因素。这样的因素的示例包括但不限于:用于实现存储系统603的存储介质的技术和计算机存储介质被表征为主要存储还是次要存储,以及其他因素。

例如,如果计算机可读存储介质被实现为基于半导体的存储器,则当程序指令被编码在其中时软件605可以转换半导体存储器的物理状态,例如,通过转换晶体管、电容器、或构成半导体存储器的其他分立电路器件的状态。可以关于磁或光介质而发生类似的转换。物理介质的其他转换是可能的而不脱离本说明的范围,其中,仅仅为了促进本讨论而提供了前述的示例。

通信接口系统607可以包括支持通过通信网络(未示出)与其他计算系统(未示出)进行通信的通信连接和通信设备。共同支持系统间通信的连接的示例可以包括:网络接口卡、天线、功率放大器、rf电路、收发机、以及其他通信电路。连接和设备可以通过通信介质来进行通信以与其他计算系统或系统的网络交换通信,所述通信介质例如金属、玻璃、空气、或任何合适的通信介质。前述的介质、连接、和设备是公知的并且不需要在这里详细讨论。

用户接口系统609是可选的并且可以包括:键盘、鼠标、语音输入设备、用于从用户接收触摸输入的触摸输入设备、用于检测用户的非触摸手势和其他运动的运动输入设备、和能够从用户接收用户输入的其他类似的输入设备和相关联的处理元件。在用户接口系统609中还可以包括诸如显示器、扬声器、触觉设备、和其他类型的输出设备之类的输出设备。在一些情况下,可以将输入和输出组合在单个设备中,例如能够显示图像并且能够接收触摸手势的显示器。前述的用户输入设备和输出设备是在本领域中公知的并且不需要在这里详细讨论。

用户接口系统609还可以包括可以由处理系统602执行的、支持在上文中所讨论的各种用户输入和输出设备的相关联的用户界面软件。独立地或彼此并且与硬件元件和软件元件相结合地,用户界面软件和用户界面设备可以支持图形用户界面、自然用户界面、或任何其他类型的用户界面。

计算系统601与任何其他计算系统(未示出)之间的通信可以通过通信网络或多个通信网络并且根据各种通信协议、协议的组合、或其变型来进行。示例包括:内联网、互联网、局域网、广域网、无线网络、有线网络、虚拟网络、软件定义的网络、数据中心总线、计算背板、或任何其他类型的网络、网络的组合、或其变型。前述的通信网络和协议是公知的并且不需要在这里详细讨论。然而,可以使用的一些通信协议包括但不限于:互联网协议(ip、ipv4、ipv6等)、传输控制协议(tcp)、和用户数据报协议(udp)、以及任何其他合适的通信协议、其变型或组合。

在交换数据、内容、或任何其他类型的信息的前述的示例中的任何一个中,可以根据多种协议中的任何一种协议来发生信息的交换,所述多种协议包括ftp(文件传输协议)、http(超文本传输协议)、rest(表述性状态传输)、网络socket、dom(文档对象模型)、html(超文本标记语言)、css(层叠样式表)、html5、xml(可扩展标记语言)、javascript、json(javascriptobjectnotation)、和ajax(异步javascript和xml)、以及任何其他合适的协议、变型、或其组合。

在其他示例中,本公开呈现了一种系统,包括:至少一个处理器;以及编码计算机可执行指令的存储器,所述计算机可执行指令当由所述至少一个处理器执行时,执行一种用于对由原生移动应用所托管的网页的加载、解析、和渲染进行加速的方法,所述方法包括:将清单文件存储在本地网络高速缓存中,所述清单文件至少包括用于渲染由所述原生移动应用所托管的所述网页的资源;经由所述原生移动应用向与所述原生移动应用相关联的网站发送针对所述网页的请求;在加载所述网页的初始内容的同时,将存储在所述本地网络高速缓存中的资源加载到浏览器文档对象模型(dom)中;以及在用户界面中在所述原生移动应用内渲染所述网页。在另外的示例中,该方法还包括向所述网站发送针对用于渲染所述网页的另外的资源的请求,其中,所述另外的资源包括不被包括在所述清单文件中的资源。在另外的示例中,该方法还包括下载所述另外的资源。在另外的示例中,该方法还包括将所述另外的资源加载到浏览器dom中。在另外的示例中,用于渲染由该原生移动应用所托管的网页的资源至少包括与原生移动应用相关联的javascript和层叠样式表(css)框架。在另外的示例中,该方法还包括在该网页的初始内容进行加载同时,响应于将存储在本地网络高速缓存中的资源加载到浏览器文档对象模型(dom)中而预编译用于渲染该网页的资源。在另外的示例中,该方法还包括在该网页的初始内容进行加载同时,在该原生移动应用内呈现加载状态指示符。

本文所公开的另外的方面提供了一种用于由原生移动应用预加载网页数据的计算机实现的方法,所述方法包括:从所述原生移动应用向服务发送针对清单文件的最新版本的请求,其中,所述清单文件至少包括用于渲染由所述原生移动应用所托管的网页的资源;当所述服务具有所述清单文件的所述最新版本时,从所述服务下载所述清单文件的所述最新版本;以及将所述清单文件的所述最新版本存储在本地网络高速缓存中。在另外的示例中,该计算机实现的方法还包括响应于启动该原生移动应用而从该原生移动应用向该服务发送针对清单文件的最新版本的请求。在另外的示例中,用于渲染由该原生移动应用所托管的网页的资源至少包括与原生移动应用相关联的javascript和层叠样式表(css)框架。在另外的示例中,该计算机实现的方法还包括响应于在该原生移动应用中接收到对与网站相关联的图标的选择,向网站发送针对该网页的请求。在另外的示例中,该计算机实现的方法还包括在与该原生移动应用所托管的网页相关联的初始有效载荷进行加载同时,将存储在本地网络高速缓存中的资源加载到浏览器文档对象模型(dom)中。在另外的示例中,该计算机实现的方法还包括从网站接收与由该原生移动应用所托管的网页相关联的初始有效载荷。在另外的示例中,该计算机实现的方法还包括向该网站发送针对用于渲染由该原生移动应用所托管的网页的另外的资源的请求,其中所述另外的资源包括不被包括在该清单文件中的资源。在另外的示例中,该计算机实现的方法还包括下载用于渲染由该原生移动应用所托管的网页的另外的资源。在另外的示例中,该计算机实现的方法还包括在用户界面中在该原生移动应用内渲染该网页。

本文所公开的另外的方面提供了示例性系统,包括一个或多个计算机可读存储介质;以及存储在所述一个或多个计算机可读存储介质上的程序指令,所述程序指令当由至少一个处理器执行时,使得所述至少一个处理器至少进行以下操作:响应于接收到对原生移动应用图标的选择而启动与所述原生移动应用图标相关联的原生移动应用;向服务发送针对清单文件的请求,其中,所述清单文件至少包括用于渲染由所述原生移动应用所托管的网页的资源;从所述服务下载所述清单文件;以及将所述清单文件存储在本地网络高速缓存中。在另外的示例中,该服务至少包括内容传递网络和原生移动应用服务。在另外的示例中,该清单文件是该清单文件的最新版本。在另外的示例中,用于渲染由该原生移动应用所托管的网页的资源至少包括与原生移动应用相关联的javascript和层叠样式表(css)框架。

描述了用于对由原生移动应用所托管的网页的加载、解析和渲染进行加速的技术。尽管以特定于结构特征和/或方法动作的语言描述了多个方面,但是所要理解的是,在所附权利要求中限定的方面并不一定限于上文所描述的具体特征或动作。相反,所述具体特征和动作是作为实现所要求保护的方面的示例形式而公开的。

可以实施多种方法来执行本文所讨论的技术。方法的多个方面可以以硬件、固件或软件或者它们的组合来实施。方法被示出为指定一个或多个设备所执行的操作的框的集合,并且不一定限于所示出的由相应框执行该操作的顺序。另外,关于特定方法所示出的操作可以与根据一种或多种实现的不同方法的操作进行组合和/或互换。方法的多个方面可以经由上文参考可触摸用户界面所讨论的各个实体之间的交互来实现。

本公开的多个方面例如在上文参考本公开多个方面的框图和/或方法、系统和计算机程序产品的操作图示进行了描述。框中所提到的功能/动作可以以不同于任何流程图所示的顺序进行。例如,根据所涉及到的功能/动作,连续示出的两个框实际上可以大体上同时执行,或者所述框有时可以以逆序执行。

本申请中所提供的一个或多个方面的描述和图示不旨在以任何方式限制或约束如所请求保护的本公开的范围。在本申请中所提供的方面、示例和细节被认为足以传达所有权并且使得他人能够制作并使用最佳模式。实施方式不应被理解为限制于本申请中所提供的任何方面、示例或细节。无论是以组合的方式还是分开的方式示出和描述,各种特征(结构上的和方法逻辑上的)都旨在被选择性地包括或忽略从而产生具有特定的特征集的示例。在被提供以本申请的描述和说明之后,本领域的技术人员能够设想到落在本申请中所具体化的一般发明概念的更宽泛方面精神内的不脱离较宽泛范围的变化、修改和替代方面。

另外地,尽管多个方面可以在结合计算设备上的操作系统上运行的应用程序执行的原生移动应用系统的整体上下文中进行描述,但是本领域技术人员将会认识到,多个方面也可以结合其他程序模块来实现。在另外的方面中,在本文中所公开的方面可以以硬件来实现。

通常,程序模块包括实行特定任务或者实施特定抽象数据类型的例程、程序、组件、数据结构或者其他类型的结构。此外,本领域技术人员将会意识到,实施例可以利用其他计算机系统配置来实践,包括手持设备、多处理器系统、基于微处理器的或可编程的消费型电子产品、小型计算机、大型计算机,以及类似的计算设备。方面还可以在分布式计算环境中实践,其中任务由通过通信网络进行链接的远程处理设备所执行。在分布式计算环境中,程序模块可以位于本地和远程的存储器存储设备中。

方面可以被实施为计算机实现的过程(方法)、计算系统,或者被实施为诸如计算机程序产品或计算机可读介质的制品。计算机程序产品可以是能够由计算机系统所读取并且对计算机程序进行编码的计算机存储介质,上述计算机程序包括用于使得计算机或计算系统实行(多种)示例处理的指令。计算机可读存储介质是计算机可读存储设备。计算机可读存储介质例如可以经由易失性计算机存储器、非易失性存储器、硬盘、闪速存储器、软盘或压缩盘、在单个计算设备上执行的应用和类似系统中的一种或多种来实现。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1