CN105701113A - 用于优化网页预加载的方法和设备 - Google Patents

用于优化网页预加载的方法和设备 Download PDF

Info

Publication number
CN105701113A
CN105701113A CN201410706711.0A CN201410706711A CN105701113A CN 105701113 A CN105701113 A CN 105701113A CN 201410706711 A CN201410706711 A CN 201410706711A CN 105701113 A CN105701113 A CN 105701113A
Authority
CN
China
Prior art keywords
prestrain
files
node
web page
module
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
CN201410706711.0A
Other languages
English (en)
Other versions
CN105701113B (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201410706711.0A priority Critical patent/CN105701113B/zh
Priority to US14/924,924 priority patent/US10027777B2/en
Publication of CN105701113A publication Critical patent/CN105701113A/zh
Application granted granted Critical
Publication of CN105701113B publication Critical patent/CN105701113B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种用于优化网页预加载的方法,应用于电子设备,所述方法包括:分析网页文件的源代码以便生成模块依赖图,所述模块依赖图描述网页文件中包括的各个模块之间的加载依赖关系;根据所述模块依赖图生成加载流程图,所述加载流程图指示网页中各个模块的加载流程;分析所述加载流程图和所述模块依赖图以便确定网页文件中各个模块的预加载序列;以及根据已确定的优化的预加载序列生成预加载简档文件。

Description

用于优化网页预加载的方法和设备
技术领域
本发明涉及电子设备领域,更具体地,涉及一种用于优化网页预加载的方法以及实现该方法的设备。
背景技术
目前,互联网已经成为生活中不可缺少的一部分。已经出现各种各样的提供丰富内容和功能的网站,能够满足人们各种各样的需求。
然而,伴随着网站内容和功能的丰富而来的是网页文件越来越大。原因是网页文件中包括用于实现各种功能的诸如JavaScript应用的应用。为了提供更多的功能,JavaScript应用的数量以及代码量也越来越大。
因此,这导致的问题是用户访问网站时,加载每个网页所需的时间越来越长,这导致用户的使用体验较差。
为此,期望提供一种用于优化网页预加载的方法和电子设备,其能够有效地降低网页加载的时间,从而改进用户的使用体验。
发明内容
根据本发明的一个方面,提供了一种用于优化网页预加载的方法,应用于电子设备,所述方法包括:分析网页文件的源代码以便生成模块依赖图,所述模块依赖图描述网页文件中包括的各个模块之间的加载依赖关系;根据所述模块依赖图生成加载流程图,所述加载流程图指示网页文件中各个模块的加载流程;分析所述加载流程图和所述模块依赖图以便确定网页文件中各个模块的预加载序列;以及,根据已确定的预加载序列生成预加载简档文件。
根据本发明的另一个方面,提供了一种用于优化网页预加载的设备,所述设备包括:模块依赖图生成部件,配置为分析网页文件的源代码以便生成模块依赖图,所述模块依赖图描述网页文件中包括的各个模块之间的加载依赖关系;加载流程图生成部件,配置为根据所述模块依赖图生成加载流程图,所述加载流程图指示网页文件中各个模块的加载流程;预加载序列生成部件,配置为分析所述加载流程图和所述模块依赖图以便确定网页文件中各个模块的预加载序列;以及,预加载简档文件生成部件,配置为根据已确定的预加载序列生成预加载简档文件的部件。
根据本发明的另一个方面,提供了一种用于优化网页预加载的方法,应用于服务器,所述方法包括:接收网页文件,所述网页文件中包括一预加载简档文件,其中所述预加载简档文件中定义网页文件中各个模块的预加载序列;响应于接收用户通过一客户端访问所述网页文件对应的网页的请求,确定所述客户端是否具有所述预加载简档文件;响应于所述客户端具有所述预加载简档文件,根据客户端基于所述预加载简档文件进行的预加载请求,将所述网页文件中的各个模块传输给所述客户端。
根据本发明的另一个方面,提供了一种用于优化网页预加载的设备,包括:接收部件,配置为接收从外部电子设备发布的网页文件,所述网页文件中包括一预加载简档文件,其中所述预加载简档文件中定义网页文件中各个模块的预加载序列;确定部件,配置为响应于接收用户通过一客户端访问所述网页文件对应的网页的请求,确定所述客户端是否具有所述预加载简档文件;传输部件,配置为响应于所述客户端具有所述预加载简档文件,根据客户端基于所述预加载简档文件进行的预加载请求,将所述网页文件中的各个模块传输给所述客户端。
根据本发明的另一个方面,提供了一种用于优化网页预加载的方法,所述方法包括:接收用户访问特定网页的请求;根据所述请求,读取与该特定网页对应的一预加载简档文件,其中所述预加载简档文件中定义网页文件中各个模块的预加载序列;以及根据所述预加载简档文件执行该特定网页的预加载。
根据本发明的另一个方面,提供了一种用于优化网页预加载的设备,包括:网页请求接收部件,配置为接收用户访问特定网页的请求;处理部件,配置为根据所述请求,读取与该特定网页对应的一预加载简档文件,其中所述预加载简档文件中定义网页文件中各个模块的预加载序列;以及,预加载部件,配置为根据所述预加载简档文件执行该特定网页的预加载。
因此,根据本发明实施例的用于优化网页预加载的方法和电子设备,其能够有效地降低网页加载的时间,从而改进用户的使用体验。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图;
图2示出了根据本发明第一实施例的用于优化网页预加载的系统的结构图;
图3示出了根据本发明第二实施例的用于优化网页预加载的电子设备的功能配置框图;
图4示出了在根据第二实施例的电子设备中实现的用于优化网页预加载的方法的流程图;
图5示出了基于JavaScript应用的页面元素的示例;
图6示出了模块依赖图的示例;
图7示出了生成加载流程图的示例;
图8示出了预加载简档文件的示例;
图9示出了根据本发明第三实施例的用于优化网页预加载的服务器的功能配置框图;
图10示出了在根据第三实施例的服务器中实现的用于优化网页预加载的方法的流程图;
图11示出了根据本发明第四实施例的用于优化网页预加载的客户端电子设备的功能配置框图;
图12示出了在根据第四实施例的电子设备中实现的用于优化网页预加载的方法的流程图;
图13示出了在根据第四实施例的电子设备中实现的用于优化网页预加载的方法的详细流程图;以及
图14A和14B示出了根据本发明第四实施例的用于优化网页预加载的方法的实现效果图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
现在参看图2,图2示出了根据本发明第一实施例的用于优化网页预加载的系统100的结构图。
如图2所示,根据本发明第一实施例的系统100包括三个部分:第一部分101是构建(build)并发布网页的电子设备(即,也可以称为构建工具);第二部分102是用于提供网页给客户端的服务器;第三部分103是用户用来访问网页的客户端电子设备。
构建工具101对网页文件进行构建,并且生成用于预加载的预加载简档文件和用于客户端的用户代理应用,将这些文件构建完成后发布给服务器102。
服务器102接收构建工具101发布的网页文件,将预加载简档文件和用户代理应用传输给客户端103,并且接收客户端反馈的用户使用信息。
客户端103使用用户代理应用访问服务器中的网页,并且根据预加载简档文件进行预加载。同时,客户端103监控并统计用户的使用信息并将其反馈给服务器102。
具体地,如图3所示,图3示出了根据本发明第二实施例的用于优化网页预加载的电子设备300的功能配置框图。
电子设备300包括:
模块依赖图生成部件301,配置为分析网页文件的源代码以便生成模块依赖图,所述模块依赖图描述网页文件中包括的各个模块之间的加载依赖关系;
加载流程图生成部件302,配置为根据所述模块依赖图生成加载流程图,所述加载流程图指示网页文件中各个模块的加载流程;
预加载序列生成部件303,配置为分析所述加载流程图和所述模块依赖图以便确定预加载序列;以及
预加载简档文件生成部件304,配置为根据已确定的预加载序列生成网页文件中各个模块的预加载简档文件。
下面,详细描述在电子设备300上实现的用于优化网页预加载的方法。
如图4所示,图4示出了在根据第二实施例的电子设备300中实现的用于优化网页预加载的方法的流程图。
该方法400包括以下步骤:
步骤S401:分析网页文件的源代码以便生成模块依赖图,所述模块依赖图描述网页文件中包括的各个模块之间的加载依赖关系;
步骤S402:根据所述模块依赖图生成加载流程图,所述加载流程图指示网页文件中各个模块的加载流程;
步骤S403:分析所述加载流程图和所述模块依赖图以便确定网页文件中各个模块的预加载序列;以及
步骤S404:根据已确定的预加载序列生成预加载简档文件。
具体来说,因为随着网页文件的大小越来越大,在加载网页时,等待的时间越来越长。为了减少用户等待网页加载的时间,可以考虑预先加载网页中的一些必要的或者关键的元素(模块),而不是同时加载页面中的所有元素(模块)。
特别地,为了给网页提供更多的内容和更丰富的功能,JavaScript应用的数量越来越多。JavaScript应用在加载和执行时,对于一个或多个其它脚本程序的加载具有依赖性。也就是说,在加载和执行特定的一个JavaScript应用时,需要一个或多个其它脚本程序已经加载。
然而,如本领域技术人员熟知的,考虑网页发布时文件传输的效率,大量的JavaScript应用在构建(build)阶段中将被合并和压缩以生成压缩文件包,从而提高传输效率。因此,即使用户在编写JavaScript应用以及网页文件时手动地预先定义了哪些JavaScript应用和/或资源需要被预加载,这些JavaScript应用在构建时被重新合并和压缩以生成一个或几个文件,这导致一些原始的定义失效。
为此,本发明在构建(build)阶段,通过对页面浏览顺序进行预测,对页面中不同元素的代码相关性进行分析,从而对网页页面中的元素(模块)进行主动式预加载,从而减少页面加载的时间。
因此,步骤S401中,可以分析网页文件的源代码以便生成模块依赖图,所述模块依赖图描述网页文件中包括的各个模块之间的加载依赖关系。
下面参考图5和图6详细描述模块依赖图。图5示出了基于JavaScript应用的页面元素的典型示例。
如图5所示,假设主页中包括一个a模块。a模块中定义了b模块和c模块,并且b模块中定义了c模块。
在第一阶段中,在页面初始化时,首先加载主页中的a模块,此时发现需要加载b模块和c模块,然后开始加载b模块,加载c模块。然后,开始执行c模块。
然后,在第二阶段中,在用户进行交互操作时,开始加载x模块,并且开始执行x模块以进行交互操作。
在模块少的时候,用户还可以手动地定义各个模块的加载顺序来执行初始化。然而,当网页中的模块数量超过一定数量(如几十个或几百个)时,用户已经无法定义每个模块的加载顺序,因为每个模块可能还涉及对其他模块的依赖。
为此,需要能够对网页代码进行分析以确定各个模块之间的模块依赖图。
具体地,分析网页文件的源代码以便生成模块依赖图进一步包括:
分析网页文件的源代码以确定网页文件中的节点和边缘,其中,所述节点包括网页文件中的模块,并且所述边缘包括真实边缘和虚拟边缘,所述真实边缘具有方向,从一个节点到另一个节点的真实边缘指示该一个节点总是依赖另一个节点,所述虚拟边缘具有方向,从一个节点到另一个节点的虚拟边缘指示该一个节点只在特定条件下依赖另一个节点。另外,边缘可以设置权重,该权重指示依赖路径的数量。
根据确定的节点和边缘生成模块依赖图。
如图6所示,图6示出了模块依赖图的示例。在图6中,P1指示根节点(例如,主页),该主页中包括称为真实节点的模块M1-M15和具有方向的真实边缘(图中实线箭头所示)。此外,该主页中还包括称为虚拟节点的子页面SP1和具有方向的虚拟边缘(图中虚线箭头所示)。所述真实节点指示页面中的模块,所述虚拟节点指示页面实例。从一个节点到另一个节点的真实边缘指示该一个节点总是要求另一个节点,如P1指向M1的实线箭头,M1指向M2的实线箭头等等。另外,从一个节点到另一个节点的虚拟边缘指示该一个节点只在特定条件下依赖另一个节点,如M5指向M11的虚线箭头,M6指向M7的虚线箭头等等。该特定条件例如包括异步请求、函数等等。此外,每个边缘具有权重,例如可以设置其值为1。但是,也可以调整边缘的权重,例如根据用户的使用信息(包括使用频度、使用偏好信息等)、文件大小等来调整。
通过对整个网页文件的源代码进行分析,可以确定该网页文件中的每个节点和边缘,从而生成模块依赖图。需要注意的是,通过对网页文件的源代码进行分析从而确定该网页文件中的节点和边缘的方法是本领域技术人员所熟知的,在此省略其详细描述。
在步骤S401中生成了模块依赖图之后,在步骤S402中根据所述模块依赖图生成加载流程图。
具体地,根据所述模块依赖图生成加载流程图进一步包括:
从所述模块依赖图中移除所有的虚拟边缘以得到修正模块依赖图;
从所述修正模块依赖图中识别所有的根;
针对每个根,在所述修正模块依赖图中识别它的传递闭包;
针对每个识别的传递闭包,生成所述加载流程图中的节点,所述加载流程图中的节点包括所述传递闭包中的所有模块;
针对每一对所述加载流程图中的节点(LFG_Ni,LFG_Nj),如果从一个节点(LFG_Ni)中的模块到另一节点(LFG_Nj)中的模块在所述模块依赖图中存在至少一个虚拟边缘,则生成从该一个节点(LFG_Ni)到该另一节点(LFG_Nj)的方向性边缘,并且该边缘的权重是对应的虚拟边缘的全部权重;
针对每一对所述加载流程图中的节点(LFG_Ni,LFG_Nj),如果它们具有共同的模块,则生成该一个节点(LFG_Ni)和该另一节点(LFG_Nj)之间的链路;以及
以所述加载流程图中的节点作为最小加载单元生成所述加载流程图。
具体地,图7示出了生成加载流程图的示例。如图7所示,首先,从模块依赖图中移除所有的虚拟边缘以得到修正模块依赖图,即M5指向M11的虚拟边缘、M6指向M7的虚拟边缘、M10指向M11的虚拟边缘。
然后,从所述修正模块依赖图中识别所有的根。例如,M1、M6、M10以及M7、M11和M13。
然后,针对每个根,在所述修正模块依赖图中识别它的传递闭包(transitiveclosure)。如本领域技术人员熟知的,传递闭包是图论中的定义。例如,对于一个节点i,如果j能到i,i能到k,那么j就能到k。求传递闭包,用于把图中所有满足传递性的节点都挑选出来,在计算完成后,就能够知道任意两个节点之间是否相连。
如图7所示,M7、M8和M9组成的M7的传递闭包(LFG_N2)。M13、SP1、M14和M15组成的M13的传递闭包(LFG_N4)。M11、M12、M13和M9组成的M11的传递闭包(LFG_N3)。M1-M5组成的M1的传递闭包。
需要注意的是,因为M1、M6和M10属于主页P1下面的并列一级节点,也就是说,在主页P1初始化时需要同时加载M1、M6和M10三个节点,因此将该三个节点及其传递闭包组成一个传递闭包(LFG_N1)。
然后,针对每个识别的传递闭包,生成所述加载流程图中的节点,所述加载流程图中的节点包括所述传递闭包中的所有模块。也就是说,将每个识别的传递闭包作为加载流程图中的节点。图7中生成了四个节点,即,LFG_N1-LFG_N4。
然后,针对每一对所述加载流程图中的节点(LFG_Ni,LFG_Nj),如果存在从一个节点(LFG_Ni)中的模块到另一节点(LFG_Nj)中的模块的至少一个虚拟边缘,则生成从该一个节点(LFG_Ni)到该另一节点(LFG_Nj)的方向性边缘,并且该边缘的权重是对应的虚拟边缘的全部权重。如图7所示,在该加载流程图中,存在四个虚拟边缘,即,从LFG_N1指向LFG_N2的虚拟边缘,其权重为1,从LFG_N1指向LFG_N3的虚拟边缘,其权重为2,从LFG_N1指向LFG_N4的虚拟边缘,其权重为1。
然后,针对每一对所述加载流程图中的节点(LFG_Ni,LFG_Nj),如果它们具有共同的模块(共享的模块),则生成该一个节点(LFG_Ni)和该另一节点(LFG_Nj)之间的链路。链路指在依赖关系中存在共同依赖的情况下,将被共同依赖的部分复制一份并且和原始部分连接的线,从数据结构上可用于追踪共同依赖的副本。如图7所示,在该加载流程图中,例如,LFG_N2和LFG_N3之间存在共享的模块M9,所以在LFG_N2和LFG_N3之间存在一条链路。图7中的两个模块M9指示相同的模块,该模块M9被LFG_N2和LFG_N3共享。
在上述分析处理完成之后,以所述加载流程图中的节点作为最小加载单元生成所述加载流程图。
在步骤S403中生成了加载流程图以后,在步骤S404中分析所述加载流程图和所述模块依赖图以便确定预加载序列。
在一个实施例中,分析所述加载流程图和所述模块依赖图以便确定预加载序列进一步包括:
针对每个最小加载单元,确定它到根的最短路径;其中,根指示应用的第一页或者加载流程图中的根。
针对每个最小加载单元,基于它到根的最短路径确定它的级别;其中,级别=最短路径的长度。在实施例中,路径越短,优先级越高。
针对每个最小加载单元,确定它的依赖程度;其中,依赖程度=边缘的数量/模块的数量,以图7中的一个最小加载单元为例,如LFG_N3,依赖程度=边缘的数量(3)/模块的数量(4)=3/4。计算获得的依赖程度的值越大,依赖程度越高,表示该加载单元内的各个模块的关系越紧密。在本实施例中,依赖程度的值越大,优先级越高。
针对每个最小加载单元,确定共享模块的数量;其中,共享模块是在不同最小加载单元之间共享的模块。在本实施例中,共享模块越多,优先级越高。
针对每个最小加载单元,确定模块的大小(即,模块本身的文件的大小)。在本实施例中,模块的大小越小,优先级越高。
根据不同的使用环境,可以通过下列因素中的一个或多个将最小加载单元分类:确定的级别、共享模块的数量、依赖程度和模块的大小中的一个或多个将最小加载单元分类,并且通过调整所述因素的顺序修改分类规则,从而确定预加载序列。例如,用户可以根据实际需要,通过将上面列出的各个因素的顺序进行调整,从而修改分类规则。
在另一个实施例中,分析所述加载流程图和所述模块依赖图以便确定预加载序列进一步包括:
针对每个最小加载单元,确定它到根的最短路径;
针对每个最小加载单元,基于它到根的最短路径确定它的级别;
针对每个最小加载单元,确定它的依赖程度;
针对每个最小加载单元,确定共享模块的数量;
针对每个最小加载单元,通过分析运行时信息确定它的交互操作可能性;其中,交互操作可能性=浏览相关模块所在页面的可能性=穿行到给定最小加载单元的可能性的总和。该运行时信息可以通过从客户端设备的用户的操作收集得到。需要注意的是,该交互操作可能性也可以预先预测。
针对每个最小加载单元,确定模块的大小;
根据不同的使用环境,可以通过下列因素中的一个或多个将最小加载单元分类:确定的级别、交互操作可能性、共享模块的数量、依赖程度和模块的大小中的一个或多个将最小加载单元分类,并且通过调整所述因素的顺序修改分类规则,从而确定预加载序列。所述运行时信息包括通过一个或多个客户端设备收集的不同类型的用户的访问信息。也就是说,用户可以根据各个因素的重要性,动态调整预加载序列。
在步骤S403确定预加载序列之后,在步骤S404中可以根据已确定的预加载序列生成预加载简档文件。具体地,根据已确定的预加载序列生成预加载简档文件进一步包括:
根据已确定的预加载序列,添加用于运行时配合的参数值和附加信息,生成特定格式的预加载简档文件。所述附加信息包括特定用户的标识信息和/或特定使用需求的标识信息。也就是说,该预加载简档文件可以根据角色或个人进行定制。
具体来说,图8左边示出了预加载简档文件的示例。如图8所示,该预加载文件中包括了角色为“系统管理员”并且用户ID为“HaoChen”的预加载序列。
此外,图8右边示出了可以为每个用户或每个角色单独地定制生成一个预加载简档文件。
此外,本发明实施例的方法400例如还可以包括:
根据所述构建简档文件执行构建操作,从而生成用于发布到服务器的网页文件。
也就是说,因为网页文件需要发布到服务器,所以为了对网页文件进行构建(build),还需要生成用于指导构建过程的构建简档文件。然后,根据所述构建简档文件、所述预加载简档文件以及一用户代理应用,执行构建操作。这是由于JavaScript应用在构建阶段的特殊性决定的。因为JavaScript应用在构建时,并非简单地将各个JavaScript应用文件压缩为一个压缩文件,而是需要将各个JavaScript应用中的变量进行混合,并且将各个文件进行合并,从而生成特殊格式的压缩文件。因此,在构建阶段,需要生成用于指导构建过程的构建简档文件,能够确定各个JavaScript的预加载的顺序。
该用户代理应用用于提供给客户端设备,使得客户端设备能够通过该用户代理应用访问预加载简档文件、收集运行时信息等等。在构建操作完成之后,生成了用于发布到服务器的网页文件。然后,可以将该网页文件发布到服务器。
因此,根据本发明第二实施例的电子设备和用于优化网页预加载的方法,可以通过对页面浏览顺序进行预测,对页面中不同元素的代码相关性进行分析,从而对网页页面中的元素进行主动式预加载,减少页面加载的时间,因此可以改进用户使用体验。
下面,将参考图9描述根据本发明第三实施例的服务器900。
如图9所述,根据本发明第三实施例的服务器900包括:
接收部件901,配置为接收网页文件,所述网页文件中包括一预加载简档文件,其中所述预加载简档文件中定义网页文件中各个模块的预加载序列;
确定部件902,配置为响应于接收用户通过一客户端访问所述网页文件对应的网页的请求,确定所述客户端是否具有所述预加载简档文件;
传输部件903,配置为在所述客户端具有所述预加载简档文件的情况下,响应于客户端根据所述预加载简档文件进行的预加载请求,将所述网页文件中的各个模块传输给所述客户端。
另外,所述接收部件901进一步配置为接收从所述客户端传输的运行时的用户使用信息。
另外,所述服务器900还可以包括更新部件904,配置为根据所述用户使用信息更新所述预加载简档文件。
下面将参考图10详细描述服务器900实现的用于优化网页预加载的方法。如图10所示,所述方法1000包括:
步骤S1001:接收网页文件,所述网页文件中包括一预加载简档文件,其中所述预加载简档文件中定义网页文件中各个模块的预加载序列;
步骤S1002:响应于接收用户通过一客户端访问所述网页文件对应的网页的请求,确定所述客户端是否具有所述预加载简档文件;
步骤S1003:在所述客户端具有所述预加载简档文件的情况下,响应于客户端根据所述预加载简档文件进行的预加载请求,将所述网页文件中的各个模块传输给所述客户端。
具体地,在步骤S1001中,服务器900接收从诸如电子设备300的外部电子设备发布的网页文件,所述网页文件中包括一预加载简档文件,其中所述预加载简档文件中定义网页文件中各个模块的预加载序列。此外,该网页文件中还可以包括一用户代理应用。
需要注意的是,所述预加载简档文件例如可以由上述电子设备300通过执行上述方法生成,在此省略其详细描述。
所述用户代理应用也是由电子设备300生成,用于传输给客户端使用。
然后,在步骤S1002中,服务器300可以检测来自客户端的网页访问请求(HTTP请求)。在接收用户通过一客户端访问所述网页文件对应的网页的请求时,确定所述客户端是否具有所述预加载简档文件。在该步骤中,服务器300例如可以检测客户端是否通过用户代理应用发出网页访问请求,如果是,则可以确定客户端已经具有用户代理应用,并且已经获得了预加载简档文件。
另一方面,如果不是,则可以确定客户端可能是第一次访问该网页或者用户代理应用可不用,因此需要将所述预加载简档文件以及用户代理应用传输给所述客户端。
然后,在步骤S1003中,在所述客户端具有所述预加载简档文件的情况下,响应于客户端根据所述预加载简档文件进行的预加载请求,将所述网页中的各个模块传输给所述客户端。
在该步骤中,服务器300可以根据客户端按照预加载简档文件中规定的各个模块(如JavaScript应用)的加载顺序做出的预加载请求,以最小加载单元为单位,顺序地传输各个模块给客户端。因此,客户端在接收网页内容时,按照预加载简档文件中规定的各个模块的加载顺序预加载各个模块。
另外,服务器300还可以接收从所述客户端传输的运行时的用户使用信息,并且根据所述用户使用信息更新所述预加载简档文件。
具体来说,客户端在运行所述用户代理应用并且进行预加载时,可以实时地监控用户的操作,并且获得运行时信息。例如,用户访问特定模块的频率,首先用户访问特定页面的频率等等。
然后,客户端可以将这样的运行时信息传输给服务器,服务器根据这样的用户使用信息更新所述预加载简档文件。
然后,服务器300在接收用户通过所述客户端再次访问所述网页的请求时,可以将更新后的所述预加载简档文件传输给所述客户端。从而,客户端可以根据更新后的预加载简档文件中已经调整过的顺序,动态地预加载网页中的模块。因此,使得用户感觉他喜欢的页面或应用被加载的速度越来越快,从而改进用户的使用体验。
因此,根据本发明实施例的服务器和用于优化网页预加载的方法,可以通过对页面浏览顺序进行预测,对页面中不同元素的代码相关性进行分析,从而对网页页面中的元素进行主动式预加载,减少页面加载的时间,因此可以改进用户使用体验。
下面,将参考图11描述根据本发明第四实施例的电子设备1100。图11示出了根据本发明第四实施例的用于优化网页预加载的客户端电子设备1100的功能配置框图。
如图11所示,该电子设备1100包括:
网页请求部件1101,配置为接收用户访问特定网页的请求;
处理部件1102,配置为根据所述请求,读取与该特定网页对应的一预加载简档文件,其中所述预加载简档文件中定义网页文件中各个模块的预加载序列;
预加载部件1103,配置为根据所述预加载简档文件执行该特定网页的预加载。
下面将参考图12描述在电子设备1100中实现的用于优化网页预加载的方法1200。
如图12所示,根据本发明第四实施例的用于优化网页预加载的方法1200包括:
步骤S1201:通过一用户代理应用接收用户访问特定网页的请求;
步骤S1202:根据所述请求,读取与该特定网页对应的一预加载简档文件,其中所述预加载简档文件中定义网页文件中各个模块的预加载序列;以及
步骤S1203:根据所述预加载简档文件执行该特定网页的预加载。
具体地,在步骤S1201,客户端1200例如可以通过浏览器访问特定网页,该浏览器中可以嵌入用户代理应用。该用户代理应用可以检测用户访问网页时的用户操作信息。
然后,在步骤S1202,当该用户代理应用检测到该网页访问请求时,从缓存或存储器中读取与该特定网页对应的预加载简档文件。所述预加载简档文件定义网页文件中各个模块的预加载序列。
需要注意的是,所述预加载简档文件例如可以由上述电子设备300通过执行上述方法生成,在此省略其详细描述。
然后,在步骤S1203,可以根据所述预加载简档文件执行该特定网页的预加载。
具体地,下面将参考图13描述在客户端1100中执行的预加载处理的过程。
如图13所示,在步骤S1300开始监视用户进行的HTTP请求。
然后,在步骤S1302确定当前是否可用于预加载。具体地,当所述客户端的空闲时间超过预定阈值时,确定所述电子设备当前处于可用状态。例如,可以对客户端的空闲时间设置预定阈值,例如,200ms。当客户端的空闲时间超过200ms时,确定客户端当前空闲,可以进行预加载。
然后,在步骤S1303,读取预加载简档文件。该预加载简档文件从服务器获取,并且对应于用户的HTTP请求对应的网页。
需要注意的是,如果读取所述预加载简档文件失败,则从服务器接收与该网页对应的预加载简档文件以及用户代理应用。
然后,在步骤S1304,可以从该预加载简档文件的矩阵向量中获取预加载的单元的集合,即,希望预加载的最小加载单元的集合。
然后,在步骤S1305,开始执行预加载,从而服务器开始接收预定的预加载的单元的集合。
在进行预加载的同时,在步骤S1306,判断此时用户是否进行交互操作,特别是用户是否执行要求带宽的交互操作。
当检测结果指示用户执行要求带宽的交互操作时,则中断网页预加载的执行并立即执行用户的交互操作,并且处理返回步骤S1300。
当检测结果指示用户没有执行要求带宽的交互操作时,继续执行预加载,直到期望的预加载的单元的集合全部加载成功。
需要注意的是,在执行网页预加载时,还可以通过所述用户代理应用监视并统计加载过程中的用户的运行时信息。该收集的用户的运行时信息例如可以包括用户进行交互操作的顺序、时间、应用名称等等。该用户的运行时信息可以反馈给服务器,以便在用户下一次访问时调整预加载的内容的顺序。
例如,如图14A和图14B所示,图14A示出用户第一次访问该网页时,预加载模块的顺序为a、b、c模块。图14B示出用户再次访问该网页时,预加载模块的顺序为a、b、d模块。也就是说,通过用户浏览该网页时收集的用户使用信息,发现用户通过d模块进行了交互操作。因此,分析结果指示该d模块具有高的可能性被用户使用。因此,在用户再次访问该网页时,将d模块进行预加载,使得用户能够先看到d模块的内容以进行操作。
上面描述了针对同一用户的用户使用信息调整预加载的顺序的示例。类似地,还可以针对不同的用户的用户使用信息调整预加载的顺序的示例。例如,还以上面的图14A和14B为例,图14A可以表示A用户访问该网页时预加载的示例,图14B可以标识B用户访问该网页时预加载的示例。
通过A用户和B用户的用户使用信息,发现A用户使用c模块的概率高,并且B用户使用d模块的概率高。因此,在A用户访问该网页时,预加载c模块,而B用户访问该网页时,预加载d模块。
因此,针对不同的用户提供不同的预加载顺序,可以给用户提供更好的使用体验。
此外,在客户端进行的预加载都是在客户端空闲的时候进行,因此不会延迟用户的交互操作。
因此,根据本发明第四实施例的电子设备和用于优化网页预加载的方法,可以通过对页面浏览顺序进行预测,对页面中不同元素的代码相关性进行分析,并且捕捉用户浏览页面的空闲间隙,从而对网页页面中的元素进行主动式预加载,减少页面加载的时间,因此可以改进用户使用体验。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (20)

1.一种用于优化网页预加载的方法,所述方法包括:
分析网页文件的源代码以便生成模块依赖图,所述模块依赖图描述网页文件中包括的各个模块之间的加载依赖关系;
根据所述模块依赖图生成加载流程图,所述加载流程图指示网页文件中各个模块的加载流程;
分析所述加载流程图和所述模块依赖图以便确定网页文件中各个模块的预加载序列;以及
根据已确定的预加载序列生成预加载简档文件。
2.根据权利要求1所述的方法,其中,分析网页文件的源代码以便生成模块依赖图进一步包括:
分析网页文件的源代码以确定网页文件中的节点和边缘,其中,所述节点指示网页文件中的模块,所述边缘包括真实边缘和虚拟边缘,所述真实边缘具有方向,从一个节点到另一个节点的真实边缘指示该一个节点总是依赖另一个节点,所述虚拟边缘具有方向,从一个节点到另一个节点的虚拟边缘指示该一个节点只在特定条件下依赖另一个节点;以及
根据确定的节点和边缘生成模块依赖图。
3.根据权利要求2所述的方法,其中,根据所述模块依赖图生成加载流程图进一步包括:
从所述模块依赖图中移除所有的虚拟边缘以得到修正模块依赖图;
从所述修正模块依赖图中识别所有的根;
针对每个根,在所述修正模块依赖图中识别它的传递闭包;
针对每个识别的传递闭包,生成所述加载流程图中的节点,所述加载流程图中的节点包括所述传递闭包中的所有模块;
针对每一对所述加载流程图中的节点,如果从一个节点中的模块到另一节点中的模块在所述模块依赖图中存在至少一个虚拟边缘,则生成从该一个节点到该另一节点的方向性边缘;以及
以所述加载流程图中的节点作为最小加载单元生成所述加载流程图。
4.根据权利要求3所述的方法,其中,分析所述加载流程图和所述模块依赖图以便确定预加载序列进一步包括:
针对每个最小加载单元,根据下列因素中的一个或多个将最小加载单元分类:其到根的最短路径、交互操作可能性、共享模块的数量、依赖程度和模块的大小,并且通过调整所述因素的顺序修改分类规则,从而确定预加载序列。
5.根据权利要求1所述的方法,其中,根据已确定的预加载序列生成预加载简档文件进一步包括:
根据已确定的预加载序列,添加用于运行时配合的参数值和附加信息,生成特定格式的预加载简档文件,其中,所述附加信息包括特定用户的标识信息和/或特定使用需求的标识信息。
6.根据权利要求4所述的方法,其中,所述交互操作可能性根据获取的运行时信息确定,所述运行时信息包括通过一个或多个客户端设备收集的不同类型的用户的访问信息。
7.根据权利要求1所述的方法,还包括:
根据指导构建过程的构建简档文件以及预加载简档文件执行构建操作,从而生成要发布的网页文件。
8.根据权利要求1所述的方法,其中,所述模块包括JavaScript应用。
9.一种用于优化网页预加载的方法,所述方法包括:
接收网页文件,所述网页文件中包括一预加载简档文件,其中所述预加载简档文件中定义网页文件中各个模块的预加载序列;
响应于接收用户通过一客户端访问所述网页文件对应的网页的请求,确定所述客户端是否具有所述预加载简档文件;
响应于所述客户端具有所述预加载简档文件,根据客户端基于所述预加载简档文件进行的预加载请求,将所述网页文件中的各个模块传输给所述客户端。
10.如权利要求9所述的方法,还包括:
响应于所述客户端不具有所述预加载简档文件,将所述预加载简档文件传输给所述客户端。
11.如权利要求9所述的方法,还包括:
接收从所述客户端传输的运行时的用户使用信息;以及
根据所述用户使用信息更新所述预加载简档文件。
12.一种用于优化网页预加载的方法,所述方法包括:
接收用户访问特定网页的请求;
根据所述请求,读取与该特定网页对应的一预加载简档文件,其中所述预加载简档文件中定义网页文件中各个模块的预加载序列;以及
根据所述预加载简档文件执行该特定网页的预加载。
13.一种用于优化网页预加载的设备,包括:
模块依赖图生成部件,配置为分析网页文件的源代码以便生成模块依赖图,所述模块依赖图描述网页文件中包括的各个模块之间的加载依赖关系;
加载流程图生成部件,配置为根据所述模块依赖图生成加载流程图,所述加载流程图指示网页文件中各个模块的加载流程;
预加载序列生成部件,配置为分析所述加载流程图和所述模块依赖图以便确定网页文件中各个模块的预加载序列;以及
预加载简档文件生成部件,配置为根据已确定的预加载序列生成预加载简档文件。
14.如权利要求13所述的设备,其中所述模块依赖图生成部件进一步配置为:
分析网页文件的源代码以确定网页文件中的节点和边缘,其中,所述节点指示网页文件中的模块,所述边缘包括真实边缘和虚拟边缘,所述真实边缘具有方向,从一个节点到另一个节点的真实边缘指示该一个节点总是依赖另一个节点,所述虚拟边缘具有方向,从一个节点到另一个节点的虚拟边缘指示该一个节点只在特定条件下依赖另一个节点;以及
根据确定的节点和边缘生成模块依赖图。
15.如权利要求14所述的设备,其中所述加载流程图生成部件进一步配置为:
从所述模块依赖图中移除所有的虚拟边缘以得到修正模块依赖图;
从所述修正模块依赖图中识别所有的根;
针对每个根,在所述修正模块依赖图中识别它的传递闭包;
针对每个识别的传递闭包,生成所述加载流程图中的节点,所述加载流程图中的节点包括所述传递闭包中的所有模块;
针对每一对所述加载流程图中的节点,如果从一个节点中的模块到另一节点中的模块在所述模块依赖图中存在至少一个虚拟边缘,则生成从该一个节点到该另一节点的方向性边缘;以及
以所述加载流程图中的节点作为最小加载单元生成所述加载流程图。
16.如权利要求15所述的设备,其中所述预加载序列生成部件进一步配置为:
针对每个最小加载单元,根据下列因素中的一个或多个将最小加载单元分类:其到根的最短路径、交互操作可能性、共享模块的数量、依赖程度和模块的大小,并且通过调整所述因素的顺序修改分类规则,从而确定预加载序列。
17.如权利要求13所述的设备,其中所述预加载序列生成部件进一步配置为:
根据已确定的优化的预加载序列,添加用于运行时配合的参数值和附加信息,生成特定格式的预加载简档文件,其中,所述附加信息包括特定用户的标识信息和/或特定使用需求的标识信息。
18.一种用于优化网页预加载的设备,包括:
接收部件,配置为接收从外部电子设备发布的网页文件,所述网页文件中包括一预加载简档文件,其中所述预加载简档文件中定义网页文件中各个模块的预加载序列;
确定部件,配置为响应于接收用户通过一客户端访问所述网页文件对应的网页的请求,确定所述客户端是否具有所述预加载简档文件;
传输部件,配置为响应于所述客户端具有所述预加载简档文件,根据客户端基于所述预加载简档文件进行的预加载请求,将所述网页中的各个模块传输给所述客户端。
19.如权利要求18所述的设备,所述接收部件进一步配置为:接收从所述客户端传输的运行时的用户使用信息,以及
所述设备还包括更新部件,配置为根据所述用户使用信息更新所述预加载简档文件。
20.一种用于优化网页预加载的设备,包括:
网页请求接收部件,配置为接收用户访问特定网页的请求;
处理部件,配置为根据所述请求,读取与该特定网页对应的一预加载简档文件,其中所述预加载简档文件中定义网页文件中各个模块的预加载序列;以及
预加载部件,配置为根据所述预加载简档文件执行该特定网页的预加载。
CN201410706711.0A 2014-11-27 2014-11-27 用于优化网页预加载的方法和设备 Active CN105701113B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410706711.0A CN105701113B (zh) 2014-11-27 2014-11-27 用于优化网页预加载的方法和设备
US14/924,924 US10027777B2 (en) 2014-11-27 2015-10-28 Web page pre-loading optimization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410706711.0A CN105701113B (zh) 2014-11-27 2014-11-27 用于优化网页预加载的方法和设备

Publications (2)

Publication Number Publication Date
CN105701113A true CN105701113A (zh) 2016-06-22
CN105701113B CN105701113B (zh) 2019-04-09

Family

ID=56079948

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410706711.0A Active CN105701113B (zh) 2014-11-27 2014-11-27 用于优化网页预加载的方法和设备

Country Status (2)

Country Link
US (1) US10027777B2 (zh)
CN (1) CN105701113B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106383710A (zh) * 2016-09-19 2017-02-08 成都知道创宇信息技术有限公司 一种网页嵌入方法
CN107766101A (zh) * 2017-09-30 2018-03-06 五八有限公司 App启动事件的处理方法、装置和设备
CN107870920A (zh) * 2016-09-23 2018-04-03 腾讯科技(深圳)有限公司 浏览器资源预拉取方法及装置
CN108804514A (zh) * 2018-04-25 2018-11-13 网宿科技股份有限公司 一种网页加载方法、服务器和网页加载系统
CN109145236A (zh) * 2017-06-28 2019-01-04 艺龙网信息技术(北京)有限公司 页面文件处理方法、装置及系统
CN109165371A (zh) * 2018-08-08 2019-01-08 杭州安恒信息技术股份有限公司 一种基于用户行为的网页静态资源预加载方法
WO2019086043A1 (en) * 2017-11-06 2019-05-09 Guangdong Oppo Mobile Telecommunications Corp., Ltd. M ethods and systems for preloading applications and generating prediction models
CN110309451A (zh) * 2018-03-02 2019-10-08 拉扎斯网络科技(上海)有限公司 一种web预加载页面的生成方法及装置
CN110620902A (zh) * 2019-07-05 2019-12-27 中电科新型智慧城市研究院有限公司 一种移动执法记录仪本地可视化与管理方法
CN111506837A (zh) * 2020-03-09 2020-08-07 百度在线网络技术(北京)有限公司 搜索方法、装置、电子设备及可读存储介质
CN111859077A (zh) * 2019-04-24 2020-10-30 北京沃东天骏信息技术有限公司 数据处理方法、装置、系统、计算机可读存储介质
CN112434237A (zh) * 2020-11-25 2021-03-02 平安普惠企业管理有限公司 页面加载方法、装置、电子设备及存储介质
CN112433741A (zh) * 2020-11-24 2021-03-02 北京奇艺世纪科技有限公司 页面处理方法、装置、系统、电子设备及存储介质
WO2021249118A1 (zh) * 2020-06-12 2021-12-16 华为技术有限公司 生成、注册ui服务包、以及加载ui服务的方法及装置
CN114637548A (zh) * 2022-02-18 2022-06-17 高德信息技术有限公司 依赖模块的加载方法、装置及计算机程序产品
WO2023051439A1 (zh) * 2021-09-30 2023-04-06 北京字节跳动网络技术有限公司 页面刷新的耗时优化方法、装置及终端设备

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095499A (zh) * 2016-06-07 2016-11-09 青岛海信电器股份有限公司 嵌入式系统启动优化方法及装置
CN111339456B (zh) * 2016-07-07 2023-05-16 贵州白山云科技股份有限公司 预加载方法和装置
CN106294614B (zh) * 2016-08-01 2019-09-20 华为技术有限公司 用于访问业务的方法和装置
US10725838B2 (en) 2017-03-29 2020-07-28 Microsoft Technology Licensing, Llc Application startup control
KR101967536B1 (ko) * 2017-06-30 2019-04-09 광운대학교 산학협력단 웹 페이지를 프리로딩하는 장치 및 방법
US10547522B2 (en) 2017-11-27 2020-01-28 International Business Machines Corporation Pre-starting services based on traversal of a directed graph during execution of an application
CN108647059A (zh) * 2018-05-21 2018-10-12 Oppo广东移动通信有限公司 应用程序预测方法、装置、存储介质及移动终端
CN109240737A (zh) * 2018-08-22 2019-01-18 杭州数澜科技有限公司 一种在大数据平台上打包发布的方法和系统
US11677699B2 (en) * 2018-12-03 2023-06-13 International Business Machines Corporation Cognitive pre-loading of referenced content in electronic messages
CN110865852B (zh) * 2019-11-19 2023-06-30 北京字节跳动网络技术有限公司 网页组件的加载方法、装置、电子设备、及存储介质
CN111193558B (zh) * 2019-12-28 2022-05-06 惠州Tcl移动通信有限公司 射频参数的校准方法及装置、存储介质、移动终端
CN111767194B (zh) * 2020-07-08 2023-09-05 中国工商银行股份有限公司 信息处理方法、装置、电子设备和介质
CN112433779B (zh) * 2020-11-10 2022-10-14 金蝶云科技有限公司 基于erp系统的应用站点预加载方法、设备和存储介质
CN112631869B (zh) * 2020-12-28 2023-01-17 深圳市彬讯科技有限公司 页面加载数据监控方法、装置、计算机设备及存储介质
CN114647411A (zh) * 2022-04-02 2022-06-21 北京思明启创科技有限公司 编程界面加载方法、装置、电子设备及存储介质
CN114968395B (zh) * 2022-05-10 2023-09-26 上海淇玥信息技术有限公司 一种基于Spring框架的启动优化方法、装置和计算机设备
CN114936460A (zh) * 2022-05-30 2022-08-23 国网重庆市电力公司电力科学研究院 一种用户用电时序优化方法和系统
CN117370702B (zh) * 2023-12-08 2024-03-05 浪潮通用软件有限公司 一种用于优化审批页面加载速度的方法及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120136853A1 (en) * 2010-11-30 2012-05-31 Yahoo Inc. Identifying reliable and authoritative sources of multimedia content
US20120151455A1 (en) * 2010-12-13 2012-06-14 Sap Ag Enhanced Unit Test Framework
CN103593345A (zh) * 2012-08-14 2014-02-19 捷达世软件(深圳)有限公司 网页流程图编辑方法及系统
CN103729438A (zh) * 2013-12-30 2014-04-16 优视科技有限公司 网页预加载方法及装置
CN104007990A (zh) * 2014-05-30 2014-08-27 北京金山网络科技有限公司 一种网页加载方法及浏览器

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7231644B2 (en) 2000-02-04 2007-06-12 Aol Llc, A Delaware Limited Liability Company Optimized delivery of web application code
US7113935B2 (en) * 2000-12-06 2006-09-26 Epicrealm Operating Inc. Method and system for adaptive prefetching
US20080205295A1 (en) * 2007-02-02 2008-08-28 Lights Together Llc Creation of organizational hierarchies in a group-centric network via handshake mechanisms
US8078691B2 (en) * 2009-08-26 2011-12-13 Microsoft Corporation Web page load time prediction and simulation
US20120167122A1 (en) 2010-12-27 2012-06-28 Nokia Corporation Method and apparatus for pre-initializing application rendering processes
US8516360B2 (en) 2011-08-24 2013-08-20 Qualcomm Innovation Center, Inc. Controlled parallel compilation and execution of JavaScripts
US9165308B2 (en) 2011-09-20 2015-10-20 TagMan Inc. System and method for loading of web page assets
US9037636B2 (en) 2012-01-19 2015-05-19 Microsoft Technology Licensing, Llc Managing script file dependencies and load times
US9122490B2 (en) 2012-10-17 2015-09-01 Microsoft Technology Licensing, Llc Code dependency calculation
US9674220B2 (en) * 2014-07-10 2017-06-06 StreamRail Ltd. System and method thereof for optimizing delivery of content over a network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120136853A1 (en) * 2010-11-30 2012-05-31 Yahoo Inc. Identifying reliable and authoritative sources of multimedia content
US20120151455A1 (en) * 2010-12-13 2012-06-14 Sap Ag Enhanced Unit Test Framework
CN103593345A (zh) * 2012-08-14 2014-02-19 捷达世软件(深圳)有限公司 网页流程图编辑方法及系统
CN103729438A (zh) * 2013-12-30 2014-04-16 优视科技有限公司 网页预加载方法及装置
CN103729438B (zh) * 2013-12-30 2017-06-16 优视科技有限公司 网页预加载方法及装置
CN104007990A (zh) * 2014-05-30 2014-08-27 北京金山网络科技有限公司 一种网页加载方法及浏览器

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106383710A (zh) * 2016-09-19 2017-02-08 成都知道创宇信息技术有限公司 一种网页嵌入方法
CN107870920A (zh) * 2016-09-23 2018-04-03 腾讯科技(深圳)有限公司 浏览器资源预拉取方法及装置
CN109145236A (zh) * 2017-06-28 2019-01-04 艺龙网信息技术(北京)有限公司 页面文件处理方法、装置及系统
CN107766101A (zh) * 2017-09-30 2018-03-06 五八有限公司 App启动事件的处理方法、装置和设备
WO2019086043A1 (en) * 2017-11-06 2019-05-09 Guangdong Oppo Mobile Telecommunications Corp., Ltd. M ethods and systems for preloading applications and generating prediction models
US11429880B2 (en) 2017-11-06 2022-08-30 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Methods and systems for preloading applications and generating prediction models
CN110309451B (zh) * 2018-03-02 2021-07-23 拉扎斯网络科技(上海)有限公司 一种web预加载页面的生成方法及装置
CN110309451A (zh) * 2018-03-02 2019-10-08 拉扎斯网络科技(上海)有限公司 一种web预加载页面的生成方法及装置
CN108804514A (zh) * 2018-04-25 2018-11-13 网宿科技股份有限公司 一种网页加载方法、服务器和网页加载系统
US11263284B2 (en) 2018-04-25 2022-03-01 Wangsu Science & Technology Co., Ltd. Method and system for loading web page, and server
CN109165371A (zh) * 2018-08-08 2019-01-08 杭州安恒信息技术股份有限公司 一种基于用户行为的网页静态资源预加载方法
CN111859077A (zh) * 2019-04-24 2020-10-30 北京沃东天骏信息技术有限公司 数据处理方法、装置、系统、计算机可读存储介质
CN110620902A (zh) * 2019-07-05 2019-12-27 中电科新型智慧城市研究院有限公司 一种移动执法记录仪本地可视化与管理方法
CN111506837A (zh) * 2020-03-09 2020-08-07 百度在线网络技术(北京)有限公司 搜索方法、装置、电子设备及可读存储介质
WO2021249118A1 (zh) * 2020-06-12 2021-12-16 华为技术有限公司 生成、注册ui服务包、以及加载ui服务的方法及装置
CN113849242A (zh) * 2020-06-12 2021-12-28 华为技术有限公司 生成、注册ui服务包、以及加载ui服务的方法及装置
CN112433741A (zh) * 2020-11-24 2021-03-02 北京奇艺世纪科技有限公司 页面处理方法、装置、系统、电子设备及存储介质
CN112433741B (zh) * 2020-11-24 2024-05-17 北京奇艺世纪科技有限公司 页面处理方法、装置、系统、电子设备及存储介质
CN112434237A (zh) * 2020-11-25 2021-03-02 平安普惠企业管理有限公司 页面加载方法、装置、电子设备及存储介质
WO2023051439A1 (zh) * 2021-09-30 2023-04-06 北京字节跳动网络技术有限公司 页面刷新的耗时优化方法、装置及终端设备
CN114637548A (zh) * 2022-02-18 2022-06-17 高德信息技术有限公司 依赖模块的加载方法、装置及计算机程序产品

Also Published As

Publication number Publication date
US10027777B2 (en) 2018-07-17
US20160156732A1 (en) 2016-06-02
CN105701113B (zh) 2019-04-09

Similar Documents

Publication Publication Date Title
CN105701113A (zh) 用于优化网页预加载的方法和设备
US10679132B2 (en) Application recommending method and apparatus
US9930419B2 (en) File recommendation method and device
US20140310691A1 (en) Method and device for testing multiple versions
US11613008B2 (en) Automating a process using robotic process automation code
US10366152B2 (en) Online content management system with undo and redo operations
US10284671B2 (en) Dynamic bundling of web components for asynchronous delivery
US20210134292A1 (en) Graph based prediction for next action in conversation flow
US10592399B2 (en) Testing web applications using clusters
US20200412780A1 (en) Automated video positioning during virtual conferencing
US10656934B2 (en) Efficient software testing
CN111061956A (zh) 用于生成信息的方法和装置
US11360973B2 (en) Generating multilingual queries
US9313284B2 (en) Smart posting with data analytics and semantic analysis to improve a message posted to a social media service
US10929412B2 (en) Sharing content based on extracted topics
CN116661936A (zh) 页面数据的处理方法、装置、计算机设备及存储介质
US11704119B2 (en) Migrating infrastructure as code between different cloud providers
US11645049B2 (en) Automated software application generation
CN110611817A (zh) 基于文本图像内容的图像压缩
Kovaliuk et al. Optimization of web-application performance
US20230185791A1 (en) Prioritized data cleaning
US20210224467A1 (en) System and method for using a scripting language to dynamically style a cascading style sheet
US20150149596A1 (en) Sending mobile applications to mobile devices from personal computers
Ananth Fast Active Queue Management Stability Transmission Control Protocol (Fast TCP)
US9871845B2 (en) Portlet scheduling with improved loading time and loading efficiency

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant