掌桥专利:专业的专利平台
掌桥专利
首页

客户端加载网页的方法、装置、电子设备及介质

文献发布时间:2023-06-19 11:45:49


客户端加载网页的方法、装置、电子设备及介质

技术领域

本公开互联网技术领域,更具体地,涉及一种客户端加载网页的方法、装置、系统及介质。

背景技术

在客户端-服务端的C/S架构(即,Client-Server架构)下,也时长会存在客户端根据用户请求加载网页(例如,Html5页面)的需求。在客户端加载网页时,在客户端向服务端发出网页请求后,客户端往往要等待服务端对所请求的网页进行渲染或部分渲染后,才能接收到网页数据然后渲染呈现到客户端上。例如,在苹果公司开发的移动操作系统IOS中,使得浏览器引擎网页视图框架(WKWebView)加载Html5页面时,经常出现加载缓慢,甚至出现空白页面的问题。如果在网络环境不好、网速慢,或者在页面加载的资源比较多时,加载就很耗时,用户体验很差。

发明内容

有鉴于此,本公开实施例提供了一种可以提高在客户端中加载网页的速度的客户端加载网页的方法、装置、电子设备及介质。

本公开实施例的一个方面,提供了一种客户端加载网页的方法。该方法包括:拦截所述客户端发起的对所述网页的用户请求;响应于拦截到的所述用户请求,从所述客户端的缓冲池中读取所述网页的组成要素数据;以及在读取到所述组成要素数据时,利用所述组成要素数据在所述客户端中展示所述网页。

根据本公开的实施例,所述方法还包括:在未读取到所述组成要素数据时,将所述用户请求处理为数据获取请求;发送所述数据获取请求,以从服务端获取所述网页的组成要素数据;将获取到的所述组成要素数据缓存到所述客户端的缓冲池中,以使从所述缓冲池中能够读取到所述组成要素数据。

根据本公开的实施例,所述方法还包括:在所述客户端中添加所述网页的系统调用链接。则所述拦截所述客户端发起的对所述网页的用户请求包括,响应于对所述系统调用链接的触发操作,拦截所述用户请求。

根据本公开的实施例,所述在所述客户端中添加所述网页的系统调用链接包括:通过浏览器引擎网页视图框架调用页面调用链接设置工具,对所述网页注册所述系统调用链接,其中,所述客户端使用所述浏览器引擎网页视图框架进行网页的加载。

根据本公开的实施例,在所述拦截所述客户端发起的对所述网页的用户请求之前所述方法还包括:在所述客户端中设置所述缓冲池;以及在所述客户端启动时初始化所述缓冲池。

根据本公开的实施例,所述组成要素数据包括以下至少之一:超文本标记语言的文档、层叠样式表、JavaScript脚本、图片资源、或数据资源。

根据本公开的实施例,其中,所述客户端运行于IOS移动操作系统。

本公开实施例的另一方面,提供了一种客户端加载网页的装置。所述装置包括拦截模块、本地读取模块、以及展示模块。拦截模块用于拦截所述客户端发起的对所述网页的用户请求。本地读取模块用于响应于拦截到的所述用户请求,从所述客户端的缓冲池中读取所述网页的组成要素数据。展示模块用于在读取到所述组成要素数据时,利用所述组成要素数据在所述客户端中展示所述网页。

根据本公开的实施例,所述装置还包括请求处理模块、发送模块、以及缓存模块。请求处理模块用于在未读取到所述组成要素数据时,将所述用户请求处理为数据获取请求。发送模块用于发送所述数据获取请求,以从服务端获取所述网页的组成要素数据。缓存模块用于将获取到的所述组成要素数据缓存到所述客户端的缓冲池中,以使从所述缓冲池中能够读取到所述组成要素数据。

根据本公开的实施例,所述装置还包括调用添加模块。所述调用添加模块用于在所述客户端中添加所述网页的系统调用链接。相应地,所述拦截模块具体用于响应于对所述系统调用链接的触发操作,拦截所述用户请求。

根据本公开的实施例,所述装置还包括设置模块。所述设置模块用于在所述拦截所述客户端发起的对所述网页的用户请求之前,在所述客户端中设置所述缓冲池,以及在所述客户端启动时初始化所述缓冲池。

本公开实施例的另一方面,提供了一种电子设备。所述电子设备包括一个或多个存储器、以及一个或多个处理器。所述存储器存储有可执行指令。所述处理器执行所述可执行指令以实现如上所述的方法。

本公开实施例的另一方面,提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

本公开实施例的另一方面,提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

上述一个或多个实施例具有如下优点或益效果:可以至少部分地减轻客户端加载网页缓慢的问题,通过客户端对网页资源的缓存接管,可以至少部分地提高了网页渲染展示的速度。

附图说明

通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:

图1示意性示出了根据本公开实施例的客户端加载网页的方法和装置的系统架构;

图2示意性示出了根据本公开实施例的客户端加载网页的方法的流程图;

图3示意性示出了根据本公开另一实施例的客户端加载网页的方法的流程图;

图4示意性示出了根据本公开实施例的客户端加载网页的装置的框图;以及

图5示意性示出了根据本公开实施例的适于实现客户端加载网页的电子设备的方框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

本公开的实施例提供了一种客户端加载网页的方法、装置、电子设备及介质。根据本公开的实施例,可以在客户端本地实现网页视图的缓冲池,其中,在缓冲池中可以缓存网页的组成要素数据,从而客户端可以从缓冲池中读取网页的组成要素数据,并在用户界面中进行渲染展示。这样用空间换时间,通过客户端来接管网页的资源,实现网页在客户端中的快速加载。

需要说明的是,本公开实施例确定的客户端加载网页的方法和装置可用于金融领域在互联网金融方面的应用,也可用于除金融领域之外的任意领域,本公开对应用领域不做限定。

图1示意性示出了根据本公开实施例的客户端加载网页的方法和装置的系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。

如图1所示,根据该实施例的系统架构100可以包括终端设备101,网络102和服务器103。网络102用以在终端设备101和服务器103之间提供通信链路。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备101通过网络102与服务器103交互,以接收或发送消息等。

服务器103可以是提供各种服务的服务器,例如对用户利用终端设备101所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。

终端设备101上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。

本公开实施例所提供的客户端加载网页的方法一般可以由终端设备101执行。相应地,本公开实施例所提供的客户端加载网页的装置一股可以设置于终端设备101中。根据本公开的一个实施例,终端设备101可以运行有苹果公司开发的移动操作系统(即IOS系统)。在IOS系统中的客户端应用程序可以使用浏览器引擎网页视图框架WKWebView来加载Html5页面。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

图2示意性示出了根据本公开实施例的客户端加载网页的方法200的流程图。

如图2所示,根据本公开实施例的方法200可以包括操作S210~操作S230。

在操作S210,拦截客户端发起的对网页的用户请求。

在操作S220,响应于拦截到的用户请求,从客户端的缓冲池中读取该网页的组成要素数据。组成要素数据例如可以包括以下至少之一:超文本标记语言的文档、层叠样式表、JavaScript脚本、图片资源、或数据资源。

在操作S230,在读取到组成要素数据时,利用组成要素数据在客户端中展示该网页。

根据本公开的实施例,还可以操作S210之前在客户端中设置缓冲池,然后在客户端启动时初始化缓冲池。

根据本公开的一个实施例,在客户端本地设置缓冲池之后,当有请求网页的用户请求时,可以拦截该用户请求,并根据该用户请求到服务端取网页的组成要素数据例如html、css/is、图片资源、数据资源等等,然后把获取到的这些组成要素数据放到缓冲池中。这样客户端可以从缓冲池中读取网页的组成要素数据,并在客户端本地进行网页视图渲染。

基于用空间换时间的理念,本公开实施例在客户端实现了webview(页面视图)的缓冲池的方案,其中,该缓冲池可以在客户端应用程序启动时就可以初始化好。然后在需要打开网页时直接从缓冲池里面去取webview就行。从而实现了由客户端来接管资源的缓存策略。

以此方式,可以在网络传输过程中直接从服务端获取其中其存放的网页的组成要素数据,缩减了等待服务端对网页的组成要素数据进行渲染的时间,也减少了网络传输的数据量。通过客户端从本地边读取数据边进行渲染,提高了网页展示的速率。

图3示意性示出了根据本公开另一实施例的客户端加载网页的方法300的流程图。

如图3所示,根据本公开实施例的方法300可以包括操作S310~操作S320、操作S220、操作S330~操作S360以及操作S230。

首先在操作S310,在客户端中添加网页的系统调用链接(例如,URLScheme)。URLscheme是操作系统提供的一种机制,为网页添加URLScheme之后,客户端可以通过对该URLScheme的调用快速打开网页。可以针对特定的某些网页设置对应的URLScheme,从而简化网页的打开方式,提高打开效率。

例如,在客户端使用浏览器引擎网页视图框架(例如,WKWebView)进行网页的加载的情况下,可以通过浏览器引擎网页视图框架WKWebView调用页面调用链接设置工具(例如,WKURLSchemeHandler),对网页注册系统调用链接。

IOS11及其以上系统苹果提供了WKWebView的WKURLSchemeHandler,可以使用setURLSchemeHandler方法添加定义的URLScheme,相较于NSURLProtocol私有API的方案没有审核风险。根据本公开的实施例,在IOS系统中,通过调用WKURLSchemeHandler对网页添加自定义的URLScheme,可以有效提高客户端HTML5页面的加载速度和可靠性。

然后在操作S320,响应于对系统调用链接的触发操作,拦截客户端发起的对网页的用户请求。

接下来在操作S220,响应于拦截到的用户请求,从客户端的缓冲池中读取网页的组成要素数据。

接下来在操作S330,判断是否读取到组成要素数据。如果是,则执行操作S230。如果否,则执行操作S340~操作S360。

在操作S340,在未读取到组成要素数据时,将用户请求处理为数据获取请求。

在操作S350,向服务端发送数据获取请求,以从服务端获取网页的组成要素数据。该数据获取请求可以从服务端直接拿取服务端中存放的数据,而不用等待服务端对这些组成要素数据进行渲染。

在操作S360,将获取到的组成要素数据缓存到客户端的缓冲池中,以使从缓冲池中能够读取到组成要素数据。然后在返回到操作S220从缓冲池读取网页组成要素数据。

例如,在IOS系统的客户端中,拦截到URLScheme的customScheme的用户请求后,从缓冲池读取本地资源,并返回给客户端网页视图WKwebview显示。若找不到本地资源,则将自定义的URLScheme的请求转换成http或https协议的数据获取请求,通过NSURLSession重新发出,收到数据包再将数据返回给WKWebView。

最后在操作S230,在读取到组成要素数据时,利用组成要素数据在客户端中展示网页。从而,客户端可以从缓冲池中读取网页的组成要素数据,并在客户端本地进行dom渲染和展示,提高客户端加载网页的速度。

图4示意性示出了根据本公开实施例的客户端加载网页的装置400的框图。

如图4所示,根据本公开的实施例,该客户端加载网页的装置400可以包括拦截模块410、本地读取模块420、以及展示模块430。根据本公开另一些实施例,该装置400还可以进一步包括请求处理模块440、发送模块450、缓存模块460、调用添加模块470、和/或设置模块480。根据本公开的实施例,该装置400可以用于实现参考图2~图3所描述的方法。

拦截模块410用于拦截客户端发起的对网页的用户请求。

本地读取模块420用于响应于拦截到的用户请求,从客户端的缓冲池中读取网页的组成要素数据。

展示模块430用于在读取到组成要素数据时,利用组成要素数据在客户端中展示网页。

请求处理模块440用于在未读取到组成要素数据时,将用户请求处理为数据获取请求。

发送模块450用于发送数据获取请求,以从服务端获取网页的组成要素数据。

缓存模块460用于将获取到的组成要素数据缓存到客户端的缓冲池中,以使从缓冲池中能够读取到组成要素数据。

调用添加模块470用于在客户端中添加网页的系统调用链接。相应地,拦截模块410具体用于响应于对系统调用链接的触发操作,拦截用户请求。

设置模块480用于在拦截模块410拦截客户端发起的对网页的用户请求之前,在客户端中设置缓冲池,以及在客户端启动时初始化缓冲池。

根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,拦截模块410、本地读取模块420、展示模块430、请求处理模块440、发送模块450、缓存模块460、调用添加模块470、以及设置模块480中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,拦截模块410、本地读取模块420、展示模块430、请求处理模块440、发送模块450、缓存模块460、调用添加模块470、以及设置模块480中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,拦截模块410、本地读取模块420、展示模块430、请求处理模块440、发送模块450、缓存模块460、调用添加模块470、以及设置模块480中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图5示意性示出了根据本公开实施例的适于实现客户端加载网页的电子设备500的方框图。图5示出的电子设备500仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图5所示,根据本公开实施例的电子设备500包括处理器501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。处理器501例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器501还可以包括用于缓存用途的板载存储器。处理器501可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

在RAM 503中,存储有电子设备500操作所需的各种程序和数据。处理器501、ROM502以及RAM 503通过总线504彼此相连。处理器501通过执行ROM 502和/或RAM 503中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 502和RAM 503以外的一个或多个存储器中。处理器501也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。

根据本公开的实施例,电子设备500还可以包括输入/输出(I/O)接口505,输入/输出(I/O)接口505也连接至总线504。电子设备500还可以包括连接至I/O接口505的以下部件中的一项或多项:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。

根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被处理器501执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。

根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 502和/或RAM 503和/或ROM 502和RAM 503以外的一个或多个存储器。

本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行本公开实施例所提供的方法的程序代码,当计算机程序产品在电子设备上运行时,该程序代码用于使电子设备实现本公开实施例所提供的图像识别方法。

在该计算机程序被处理器501执行时,执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。

在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分509被下载和安装,和/或从可拆卸介质511被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。

根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

相关技术
  • 客户端加载网页的方法、装置、电子设备及介质
  • 预加载网页的方法和装置,存储介质和电子设备
技术分类

06120113047411