CN105683957B - 样式表推测性预加载 - Google Patents

样式表推测性预加载 Download PDF

Info

Publication number
CN105683957B
CN105683957B CN201480059807.0A CN201480059807A CN105683957B CN 105683957 B CN105683957 B CN 105683957B CN 201480059807 A CN201480059807 A CN 201480059807A CN 105683957 B CN105683957 B CN 105683957B
Authority
CN
China
Prior art keywords
web page
style sheet
specified resource
externally specified
externally
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.)
Active
Application number
CN201480059807.0A
Other languages
English (en)
Other versions
CN105683957A (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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN105683957A publication Critical patent/CN105683957A/zh
Application granted granted Critical
Publication of CN105683957B publication Critical patent/CN105683957B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

提供了用于预加载样式表的网页外部指定资源的方法。在一个方面,方法包括在样式表或网页中的至少一个的下载期间识别由所述网页的所述样式表指定的至少一个外部指定资源。所述至少一个外部指定资源包括图像、字体、音频数据或视频数据中的至少一个。方法还包括确定所述网页是否包括加载所述至少一个外部指定资源的指令,以及当所述确定指示所述网页包括加载所述至少一个外部指定资源的指令时,加载由所述网页的所述样式表指定的所述至少一个外部指定资源。还提供了系统和机器可读介质。

Description

样式表推测性预加载
技术领域
本公开一般地涉及数据通过网络的传输,并且更具体地涉及使用计算设备来加载通过网络通信的数据。
背景技术
通常在web浏览器中加载的网页经常包括指向脚本(例如JavaScript)和样式表(例如层叠样式表或“CSS”)的链接。样式表包括用于多个网页和用于多个计算平台的样式信息和/或规则。当web浏览器开始下载可以包括指向脚本的链接的网页时,web浏览器,并且更具体地是超文本标记语言(“HTML”)解析器,开始解析经过该网页并且当遇到链接的脚本(或该脚本所依赖的样式表)时暂停以在重新开始解析之前加载和执行。在HTML解析器等待的同时,HTML预加载扫描器可以在其加载时继续解析(“推测性解析”)经过该网页而不暂停,以识别和初始化该HTML中的任何外部指定资源的加载,例如样式表、图像、字体、音频、或视频。
当web浏览器开始下载在正在被加载的网页中识别的样式表时,web浏览器,并且更具体地是样式表预加载扫描器,随着样式表被加载而开始解析经过该样式表。然而,样式表预加载扫描器被限于下载在正在被加载和解析的样式表中链接的其他样式表。除了其他样式表之外,正在被加载和解析的样式表也可以链接至其他的外部指定的资源,例如图像:其被该网页需要但是将不被web浏览器开始加载,直到该网页已经完成在web浏览器中的下载为止。
发明内容
根据本公开的某些实施例,提供了一种用于预加载样式表的网页外部指定资源的计算机实现的方法。所述方法包括在样式表或网页中的至少一个的下载期间识别所述网页的所述样式表指定的至少一个外部指定资源。所述至少一个外部指定资源包括图像、字体、音频数据或视频数据中的至少一个。所述方法进一步包括确定所述网页是否包括加载所述至少一个外部指定资源的指令,以及当所述确定指示所述网页包括加载所述至少一个外部指定资源的指令时,加载所述网页的所述样式表指定的所述至少一个外部指定资源。
根据本公开的某些实施例,提供了一种用于预加载样式表的网页外部指定资源的系统。所述系统包括包含指令的存储器、以及处理器。所述处理器被配置为执行所述指令以在网页开始下载之后并且在样式表完成下载之前识别所述网页的所述样式表指定的至少一个外部指定资源。所述至少一个外部指定资源包括图像、字体、音频数据或视频数据中的至少一个。所述处理器还被配置为执行所述指令以确定所述网页是否包括加载所述至少一个外部指定资源的指令,以及当所述确定指示所述网页包括加载所述至少一个外部指定资源的指令时,加载所述网页的所述样式表指定的所述至少一个外部指定资源。
根据本公开的某些实施例,提供了一种机器可读存储介质,包括用于使处理器执行用于预加载样式表的网页外部指定资源的方法的机器可读指令。所述方法包括在网页开始下载之后并且在样式表完成下载之前识别与所述网页的所述样式表指定的外部指定资源相关联的至少一个类或标识符。所述至少一个外部指定资源包括图像、字体、音频数据或视频数据中的至少一个。所述方法进一步包括确定所述网页是否包括加载所述至少一个类或标识符的指令,以及当所述确定指示所述网页包括加载所述至少一个外部指定资源的指令时,加载所述网页的所述样式表指定的所述至少一个外部指定资源。
应理解,主题技术的其他配置从以下的详细描述对于本领域的技术人员将变得容易明显,其中主题技术的各种配置被以图示的方式示出和描述。如将意识到的,主题技术能够有其他的和不同的配置并且其若干细节能够有在各种其他方面的修改,全部不偏离主题技术的范围。据此,附图和详细描述将被认为在本质上是例证性的并且不被认为是限制性的。
附图说明
附图被包括以提供本说明书的进一步理解并且并入本说明书中并且构成本说明书的一部分,图示了所公开的实施例并且与描述一起用来解释所公开的实施例的原理。在附图中:
图1图示了用于预加载样式表的网页外部指定资源的示例性架构。
图2是图示了根据本公开的某些方面的来自图1的架构的示例性客户端和服务器的框图。
图3图示了用于使用图2的示例性客户端预加载样式表的网页外部指定资源的示例性过程。
图4是与图3的示例性过程相关联的示例性图示。
图5是图示了可以用来实现图2的客户端和服务器的示例性计算机系统的框图。
具体实施方式
在以下的详细描述中,多种特定细节被阐述以提供本公开的完全理解。然而,对于本领域的技术人员将明显的是,本公开的实施例可以在没有这些特定细节中的某些的情况下被实践。在其它的情况下,熟知的结构和技术未被详细地示出,以便不模糊本公开。
所公开的系统提供在样式表和网页二者被下载的同时对于网页所需要的样式表中的外部指定资源的推测性预加载,由此允许网页和其样式元素在web浏览器中被更迅速地加载。具体地,如本文公开的web浏览器包括样式表预加载扫描器,其被配置为从HTML解析器或HTML预加载扫描器接收对于在web浏览器中下载的网页所需要的样式表的外部指定资源的识别,并且然后被配置为与下载该网页和/或该样式表并行地下载该外部指定资源。
这可以例如在HTML解析器或HTML预加载扫描器在该样式表的外部指定资源在该样式表中被样式表预加载扫描器识别之前识别网页所需要的样式表的外部指定资源的情况下发生(例如,当该网页在该样式表完成下载之前完成下载时),在这种情况下,当样式表预加载扫描器在该样式表的下载期间基于由HTML解析器或HTML预加载扫描器提供的信息来识别它们时,样式表预加载扫描器开始下载该样式表的外部指定资源。这也可以例如在样式表预加载扫描器在HTML解析器或HTML预加载扫描器已经识别网页所需要的样式表的外部指定资源之前已经识别该样式表的所有外部指定资源的情况下发生(例如,当该样式表在该网页完成下载之前完成下载时),在这种情况下,当该网页仍然正在被下载的同时HTML解析器或HTML预加载扫描器识别外部指定资源时,样式表预加载扫描器可以开始下载该网页所需要的样式表的外部指定资源。
图1图示了用于预加载样式表的网页外部指定资源的示例性架构100。架构100包括通过网络150连接的服务器130和客户端110。
客户端110中的每个被配置为加载和执行用于显示通过网络150下载的内容(并且具体地是网页)的应用。客户端110可以是例如台式计算机、移动计算机、平板电脑计算机(例如,包括电子书阅读器)、移动设备(例如,智能电话或PDA)、机顶盒(例如,用于电视的)、视频游戏控制台、或具有合适的处理器、存储器和通信能力的任何其他设备。网络150可以包括例如个域网(PAN)、局域网(LAN)、校园区域网(CAN)、城域网(MAN)、广域网(WAN)、宽带网络(BBN)、因特网等中的任何一个或多个。此外,网络150可以包括但不限于以下的网络拓扑中的任何一个或多个,包括总线网络、星形网络、环形网络、网状网络、星形总线网络、树形或分级网络等。
每个客户端110被配置为从客户端110通过网络150连接至的服务器130中的一个或多个下载网页。服务器130进而被配置为托管用于下载的网页,以及托管适当地显示该网页所需要的与该网页相关联的数据,例如样式表、图像、字体、音频、或视频。为了负载平衡的目的,多个服务器130可以托管网页和相关联的数据,通过整个数据或数据的一部分的复制。服务器130可以是用于托管网页和相关联的数据的具有合适的处理器、存储器和通信能力的任何设备。
用于客户端110中的每个的应用被配置为开始从服务器130中的一个下载网页,并且然后开始解析该网页。如果该网页链接至在服务器130中的一个上的网页的相关联的数据,例如样式表,则该应用开始下载和解析该样式表。该应用然后识别该样式表是否链接至其他的相关联的数据,例如图像、字体、音频、视频、或其他样式表,并且确定该其他的相关联的数据是否被正在下载的网页需要以合适地加载和显示该网页。如果该样式表链接的其他的相关联的数据被该网页需要,则在网页和样式表继续被下载和/或解析的同时该应用开始下载该其他的相关联的数据。
图2是图示根据本公开的某些方面的在图1的架构100中的示例性服务器130和客户端110的框图200。客户端110和服务器130通过网络150经由相应的通信模块218和238连接。通信模块218和238被配置为与网络150对接以将例如数据、请求、响应和命令的信息发送和接收至网络150上的其他设备。通信模块218和238可以是例如调制解调器或以太网卡。
服务器130包括处理器236、通信模块238和存储器232。服务器130的存储器232包括网页234、与网页234相关联的样式表240、和样式表240指定的外部指定资源242。样式表240可以是例如层叠样式表(CSS)或可扩展样式表语言(XSL)样式表。样式表240指定的外部指定资源242可以是例如图像、字体、音频数据、或视频数据。
客户端110包括处理器212、通信模块218、和包括被配置为显示网页234的应用222(例如web浏览器)的存储器220。客户端110还包括输入设备216(例如键盘或鼠标)和输出设备214(例如显示器)。应用222被配置为指令处理器212请求来自服务器130的网页234的副本,并且服务器130的处理器236响应于该请求而通过网络130将网页234的副本提供至客户端110。
应用222包括HTML解析器、HTML预加载扫描器和样式表预加载扫描器。HTML解析器被配置为当网页234被下载到客户端110的存储器220中时开始解析网页234。HTML解析器被配置为在遇到指向网页234中的脚本(例如Javascript)的链接时暂停解析,并且在该脚本被下载之后恢复解析。HTML预加载扫描器在另一个方面被配置为推测性地解析网页234而不暂停下载链接的脚本或在网页234中链接的其他数据。HTML预加载扫描器还被配置为当HTML预加载扫描器在解析期间识别在网页234中链接至的数据时指令处理器212开始下载该数据,但是不暂停以等待该数据结束下载。
例如,如果HTML预加载扫描器在网页234中遇到指向样式表240的链接,则HTML预加载扫描器指令处理器212开始下载样式表240,同时HTML预加载扫描器继续解析网页234。在样式表240开始下载到客户端的存储器220中之后,样式表预加载扫描器开始解析样式表240以识别一个或多个外部指定资源242以用于下载,所述一个或多个外部指定资源被在网页234中识别为(例如由HTML解析器或HTML预加载扫描器)对于下载以使网页234在应用222中合适地显示是需要的。
客户端110的处理器212被配置为执行指令,例如物理地编码在处理器212中的指令,从存储器240中的软件(例如应用222的样式表预加载扫描器)接收的指令,或二者的组合,以为网页234预加载样式表240的至少一个外部指定资源242。例如,客户端110的处理器212执行指令以在样式表240或网页234中的至少一个的下载期间识别网页234的样式表240指定的至少一个外部指定资源242。
网页234的样式表240指定的外部指定资源242的识别可以包括例如识别与外部指定资源242相关联的至少一个类或标识符(ID)。例如,样式表240可以包括链接至外部指定资源242的CSS类或CSS ID。网页234的样式表240指定的外部指定资源242的识别可以还包括例如识别与外部指定资源242相关联的选择器,例如类型、属性、语言或被访问状态。在某些方面,处理器212对网页234的样式表240指定的外部指定资源242的识别可以在网页234开始下载之后但是在样式表240完成下载之前发生。例如,一旦样式表240开始下载,样式表预加载扫描器开始指令处理器212扫描样式表240以识别外部指定资源242。
客户端110的处理器212还被配置(例如被样式表预加载扫描器)为确定网页234是否包括加载外部指定资源242的指令。例如,客户端110的处理器212被配置为通过接收网页234对于其包括待加载的指令的元素的指示符、并且然后确定该元素是否与外部指定资源242相关联,来确定网页234是否包括加载外部指定资源242的指令。该元素可以是例如类或标识符。所述元素的所述指示符可以例如从HTML解析器或HTML预加载扫描器中的任一个接收。所述网页对于其包括待加载的指令的所述元素的所述指示符可以例如在网页234正在被下载的同时被接收。
例如,当网页234正在被下载时,HTML预加载扫描器可以扫描网页234并且确定网页234包括调用在样式表240中指定的特定类元素的指令。HTML预加载扫描器可以向样式表预加载扫描器指示在样式表240中指定的特定类元素被需要以在该应用中显示网页234,并且样式表预加载扫描器可以然后确定在样式表240中是否存在指定该元素的类别或id,并且如果该元素被指示,则开始下载与该元素相关联的任何外部指定资源242。这样,处理器212被配置为当网页234是否包括加载外部指定资源242的指令的确定指示网页234包括加载外部指定资源242的指令时,加载(例如,下载或以其他方式加载到客户端110的存储器220中)网页234的样式表240指定的外部指定资源242。
在某些方面,处理器212还被配置为在网页234正在被下载的同时构建文档对象模型(DOM)和渲染树。在这样的情况下,确定网页234是否包括加载外部指定资源242的指令通过分析该DOM或渲染树中的至少一个以确定该DOM或渲染树是否包括加载外部指定资源242的指令来实现。
图3图示了用于使用图2的示例性客户端110预加载样式表的网页外部指定资源的示例性过程300。虽然图3被参照图2描述,但是应当注意,图3的过程步骤可以由其他的系统执行。
过程300通过从开始步骤301(此时应用222接收来自服务器130的加载网页234的请求)行进至步骤302(此时应用222开始将网页234下载到客户端110的存储器220中)开始。在步骤303中,HTML解析器和/或HTML预加载扫描器在网页234被下载到客户端110的存储器220中时开始解析网页234。在解析期间,在判定步骤304中做出网页234是否链接至样式表(例如在服务器130上的存储器232中的样式表240)的确定。如果判定步骤304的确定指示该网页不链接至样式表,则过程300跳至判定步骤311以确定网页234的解析是否完成。然而,如果判定步骤304的确定指示该网页链接至样式表,则过程300行进至步骤305,其中应用222开始下载网页234的样式表240(例如从服务器130)。过程300然后并行地继续在步骤306中样式表预加载扫描器开始解析样式表240、其被下载到客户端110的存储器220中、以及HTML解析器和/或HTML预加载扫描器继续解析网页234以在步骤313中识别元素(例如与样式表240相关联的)。
利用样式表预加载扫描器从步骤305行进,在步骤307中,样式表预加载扫描器在样式表240和/或网页234的下载期间识别由样式表240指定的至少一个外部指定资源242,其包括图像、字体、音频数据或视频数据中的至少一个。应用222在判定步骤308中确定网页234是否包括加载外部指定资源242的指令。如果判定步骤308的确定指示网页234包括加载外部指定资源242的指令,则过程300行进至步骤310,其中外部指定资源242被应用222加载(例如下载)到客户端110的存储器220中,并且然后至判定步骤312。然而,如果判定步骤308的确定指示网页234不包括加载外部指定资源242的指令,则过程300直接地行进至判定步骤312,其中样式表预加载扫描器确定是否有样式表240指定的另外的外部指定资源,包括图像、字体、音频数据、或视频数据中的至少一个。从判定步骤312,如果确定指示有样式表240指定的另外的外部指定资源,则过程300返回至步骤307,否则过程300在步骤314中结束。
返回至步骤305并且利用HTML解析器和/或HTML预加载扫描器行进,在过程300在步骤313中识别元素(例如与样式表240相关联的)之后,过程300行进至步骤309,其中样式表预加载扫描器在样式表240和/或网页234的下载期间识别与步骤313由HTML解析器和/或HTML预加载扫描器识别的元素相关联的至少一个外部指定资源242,外部指定资源242包括图像、字体、音频数据或视频数据中的至少一个。然后在步骤310中,该应用加载外部指定资源242,并且后续地在判定步骤311中进行网页解析(例如被HTML解析器和/或HTML预加载扫描器)是否完成的确定。如果在判定步骤311中的确定指示网页解析未完成,则过程300返回至判定步骤304,否则过程300在步骤314中结束。
图3阐述了用于使用图2的示例性客户端110预加载样式表的网页外部指定资源的示例性过程300。现在将使用图3的示例性的过程300、作为web浏览器的应用222、作为CSS文件的样式表240、作为图像的外部指定资源242、和图4的示例性图示400来描述一个实施例,。
过程300通过从开始步骤301(此时客户端110的用户请求web浏览器222从服务器130加载网页234“foo.html”452)行进至步骤302(此时web浏览器222开始将网页234“foo.html”452下载(或取得401)到客户端110的存储器220中)开始。在步骤303中,HTML解析器在网页234“foo.html”452被下载到客户端110的存储器220中时开始解析网页234“foo.html”452,并且在判定步骤304中确定网页234链接至样式表“foo.css”。过程300然后行进至步骤305,其中web浏览器开始从服务器130下载(或取得403)样式表“foo.css”458。过程300继续,此时HTML解析器继续解析网页234“foo.html”452,直到HTML解析器遇到加载脚本文件的标签“foo.js”,在该点HTML解析器被阻止450。然而,HTML预加载扫描器继续解析并且在步骤313中识别与样式表“foo.css”458相关联的元素,即HTML类“unicorn”(即,<pclass=“unicorn”>)454和HTML标识符“pony”和“horse”(即,<p id=“pony”>和<p id=“horse”>)456。
过程300并行地继续HTML预加载扫描器继续解析,其中当CSS文件240被下载到客户端110的存储器220中时样式表预加载扫描器在步骤306中开始解析404CSS文件240。在步骤307中,样式表预加载扫描器在CSS文件240和网页234的下载期间识别由CSS文件240指定的外部指定资源242“unicorn.jpg”,具体地是CSS类“unicorn”460和空白CSS标识符466。
在近似同时,返回至HTML预加载扫描器,HTML预加载扫描器识别与样式表“foo.css”458相关联的元素,即HTML类“unicorn”(即,<p class=“unicorn”>)454和HTML标识符“pony”和“horse”(即,<p id=“pony”>和<p id=“horse”>)456至样式表预加载扫描器,并且与样式表预加载扫描器交叉405,样式表预加载扫描器在步骤309中在样式表240和网页234的下载期间搜索464和识别(即匹配406)与该元素相关联的外部指定资源242“unicorn.jpg”。然后在步骤310中,该应用加载外部指定资源242“unicorn.jpg”(例如,使用"GET/unicorn.jpg HTTP/1.1”466命令)。后续地在判定步骤311中进行网页解析(例如通过HTML解析器和HTML预加载扫描器)完成的确定,并且过程在步骤314中结束。
图5是图示了可以用来实现图2的客户端110和服务器130的示例性计算机系统500的框图。在某些方面,计算机系统500可以使用硬件或软件和硬件的组合来实现,在专用的服务器中,或被集成在另一个实体中,或被跨越多个实体发布。
计算机系统500(例如,客户端110和服务器130)包括总线508或用于通信信息的其他通信机制,和与总线508耦合的用于处理信息的处理器502(例如处理器212和236)。以示例的方式,计算机系统500可以利用一个或多个处理器502来实现。处理器502可以是通用微处理器、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、控制器、状态机、门逻辑、分立的硬件部件、或可以执行信息的计算或其他操纵的任何其他合适的实体。
除了硬件之外,计算机系统500可以包括创建用于所讨论的计算机程序的执行环境的代码,例如存储在所包括的存储器504(例如,存储器220和232)中的构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码,所述存储器例如随机存取存储器(RAM)、闪速存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦PROM(EPROM)、寄存器、硬盘、可移动盘、CD-ROM、DVD、或任何其他合适的存储设备,被耦合至总线508以存储信息和要由处理器502执行的指令。处理器502和存储器504可以通过专用逻辑电路补充或被合并在专用逻辑电路中。
指令可以被存储在存储器504中并且被实现在一个或多个计算机程序产品中,即,在计算机可读介质上编码的计算机程序指令的一个或多个模块,用于由计算机系统500执行或控制计算机系统500的操作,并且根据本领域的技术人员熟知的任何方法,包括但不限于计算机语言,例如面向数据的语言(例如,SQL、dBase)、系统语言(例如,C、Objective-C、C++、Assembly)、构架语言(例如,Java、.NET)、和应用语言(例如,PHP、Ruby、Perl、Python)。指令还可以被以计算机语言实现,所述计算机语言诸如:数组语言、面向方面语言、汇编语言、编辑语言、命令行接口语言、编译语言、并发式语言、波形括号语言、数据流语言、数据结构语言、声明性语言、深奥语言、扩展语言、第四代语言、函数语言、交互模式语言、解释语言、迭代语言、基于列表的语言、小众语言、基于逻辑的语言、机器语言、宏语言、元编程语言、多重范型编程语言、数值分析、基于非英语的语言、面向对象的基于类的语言、面向对象的基于原型的语言、越位规则语言、过程语言、反射性语言、基于规则的语言、脚本语言、基于栈的语言、同步语言、语法处理语言、视觉语言、wirth语言、可嵌入语言和基于xml的语言。存储器504也可以被用于在待被处理器502执行的指令的执行期间存储临时变量或其他中间信息。
如本文讨论的计算机程序不一定对应于文件系统中的文件。程序可以被存储在容纳其他程序或数据的文件的一个部分(例如,存储在标记语言文件中的一个或多个脚本)中,在专用于所讨论的程序的单一的文件中,或在多个协调文件(例如,存储一个或多个模块、子程序或代码的部分的文件)中。计算机程序可以被部署为在一个计算机上或在位于一个站点处或跨越多个站点分布并且通过通信网络互连的多个计算机上执行。在本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行以通过对输入数据操作并且产生输出来执行功能。
计算机系统500进一步包括耦合至总线508的用于存储信息和指令的数据存储设备506,例如磁盘或光盘。计算机系统500可以经由输入/输出模块510耦合至各种设备。输入/输出模块510可以是任何输入/输出模块。示例性输入/输出模块510包括数据端口,例如USB端口。输入/输出模块510被配置为连接至通信模块512。示例性通信模块512(例如,通信模块218和238)包括网络接口卡,例如以太网卡和调制解调器。在某些方面,输入/输出模块510被配置为连接至多个设备,例如输入设备514(例如,输入设备216)和/或输出设备516(例如,输出设备214)。示例性输入设备514包括键盘和指示设备,例如鼠标或轨迹球,用户通过其可以将输入提供至计算机系统500。其他类型的输入设备514也可以被使用以提供与用户的交互,例如触觉输入设备、视觉输入设备、音频输入设备、或大脑-计算机接口设备。例如,提供至用户的反馈可以是任何形式的感知反馈,例如视觉反馈、听觉反馈、或触觉反馈;并且来自用户的输入可以被以任何形式接收,包括声学的、语音的、触觉的或脑电波输入。示例性输出设备516包括用于将信息显示给用户的显示设备,例如LED(发光二极管)、CRT(阴极射线管)或LCD(液晶显示器)屏幕。
根据本公开的一个方面,客户端110和服务器130可以响应于处理器502执行容纳在存储器504中的一个或多个指令的一个或多个序列而使用计算机系统500来实现。这样的指令可以从例如数据存储设备506的另一个机器可读介质读取入存储器504中。容纳在主存储器504中的指令序列的执行使处理器502执行本文描述的过程步骤。在多处理布置中的一个或多个处理器也可以被采用以执行容纳在存储器504中的指令序列。在替选方面,可以使用硬布线的电路来代替或与软件指令组合以实现本公开的各个方面。因此,本公开的方面不限于硬件电路和软件的任何特定的组合。
在本说明书中描述的主题的各个方面可以实现在计算系统中,所述计算机系统包括后端部件,例如作为数据服务器;或包括中间件部件,例如应用服务器;或包括前端部件,例如具有通过其用户可以与在本说明书中描述的主题的实现交互的图形用户界面或web浏览器的客户端计算机;或一个或多个这样的后端、中间件或前端部件的任何组合。系统的部件可以通过任何形式或介质的数字数据通信(例如通信网络)互连。通信网络(例如,网络150)可以包括例如个域网(PAN)、局域网(LAN)、校园区域网(CAN)、城域网(MAN)、广域网(WAN)、宽带网络(BBN)、因特网等中的任何一个或多个。此外,通信网络可以包括但不限于例如以下网络拓扑中的任何一个或多个,包括总线网络、星形网络、环形网络、网状网络、星形总线网络、树形或分级网络等。通信模块可以是例如调制解调器或以太网卡。
计算系统500可以包括客户端和服务器。客户端和服务器通常彼此远离并且典型地通过通信网络交互。客户端和服务器的关系借助于在各自的计算机上运行并且彼此具有客户端-服务器关系的计算机程序产生。计算机系统500可以是例如但不限于台式计算机、膝上计算机、或平板电脑计算机。计算机系统500也可以被嵌入在另一个设备中,例如但不限于移动电话、个人数字助理(PDA)、移动音频播放器、全球定位系统(GPS)接收器、视频游戏控制台、和/或电视机顶盒。
如本文使用的术语“机器可读存储介质”或“计算机可读介质”是指参与将指令或数据提供至处理器502以执行的任何介质。这样的介质可以采取许多形式,包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质包括例如光盘、磁盘、或闪速存储器,例如数据存储设备506。易失性介质包括动态存储器,例如存储器504。传输介质包括同轴电缆、铜线和光纤,包括包含总线508的导线。机器可读介质的通用形式包括例如软盘、柔性盘、硬盘、磁带、任何其他磁介质、CD-ROM、DVD、任何其他光学介质、穿孔卡片、纸带、具有孔图案的任何其他物理介质、RAM、PROM、EPROM、快擦EPROM、任何其他存储器芯片或卡盒,或计算机可以从其读取的任何其他介质。机器可读存储介质可以是机器可读存储设备、机器可读存储基片、存储器设备,实现机器可读的传送信号的物质组分,或它们中的一个或多个的组合。
如本文使用的,一系列条目(使用词语“和”或“或”分隔任何条目)的短语“中的至少一个”修饰作为整体的该列表,而非该列表的每个成员(即每个条目)。短语“中的至少一个”不要求至少一个条目的选择;而是,该短语允许包括该条目中的任何一个中的至少一个、和/或该条目的任何组合中的至少一个、和/或该条目中的每个中的至少一个的意思。以示例的方式,短语“A、B和C中的至少一个”或“A、B或C中的至少一个”每个指代仅A、仅B或仅C;A、B和C的任何组合;和/或A、B和C中的每个中的至少一个。在词语“包括”、“具有”或等在说明书或权利要求中使用的程度,这样的词语如“包括”在权利要求中用作过渡词时被解释的那样类似于词语“包括”的方式旨在是包括性的。
对于以单数的元素的引用不旨在意指“一个并且仅一个”,除明确声明,而是“一个或多个”。词语“某些”是指一个或多个。已知的或在之后对于本领域的技术人员已知的在本公开全文中描述的各种配置的元素的所有结构和功能等同物明确地通过引用合并于此并且旨在被主题包括。此外,没有任何本文公开的内容旨在贡献于公众,与这样的公开内容是否在以上的描述中明确地记载无关。
虽然本说明书包含许多特定内容,但是这些不应当被视为对可以要求保护的内容的范围的限制,而是作为主题的特定实现的描述。在本说明书中在分立实施例的上下文中描述的某些特征也可以在单个实施例中组合地实现。相反地,在单个实施例的上下文中描述的各个特征也可以被在多个实施例中分离地或在任何合适的子组合中实现。此外,虽然特征可以在上文描述为以某些组合动作并且甚至最初这样要求,但是来自所要求的组合的一个或多个特征可以在某些情况下被从该组合除去,并且所要求的组合可以指向子组合或子组合的变体。
本说明书的主题已经根据特定方面进行了描述,但是其他方面可以被实现并且在以下权利要求的范围内。例如,虽然操作在附图中以特定的顺序描绘,但是这不应当被理解为要求这样的操作应当以所示出的特定顺序或以相继的顺序执行,或所有的所图示的操作应当被执行,以实现期望的结果。在权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,在附图中描绘的过程不一定要求所示出的特定顺序或相继的顺序,以实现期望的结果。在某些情况下,多任务和并行处理可以是有利的。此外,在上文描述的方面中的各种系统部件的分离不应当被理解为在所有的方面中都要求这样的分离,并且应当理解,所描述的程序部件和系统可以通常一起集成在单个软件产品中或被封装为多个软件产品。其他的变体在所附权利要求的范围内。

Claims (17)

1.一种用于预加载样式表的网页外部指定资源的计算机实现的方法,所述方法包括:
在完成样式表的下载之后以及在完成网页的下载之前识别由所述网页的所述样式表指定的外部指定资源,所述外部指定资源包括图像、字体、音频数据或视频数据中的至少一个,并且所述样式表和所述网页是分立的文件;
在下载所述网页的同时构造文档对象模型DOM和渲染树;
通过在下载所述网页的同时构造所述渲染树时将所述渲染树与来自完成下载的所述网页的所述样式表的外部指定资源进行比较以确定所述渲染树是否包括下载所述外部指定资源的指令,来确定所述网页是否包括加载所述外部指定资源的指令;以及
当所述确定指示所述网页包括加载所述外部指定资源的指令时,加载由所述网页的所述样式表指定的所述外部指定资源。
2.根据权利要求1所述的方法,其中,所述样式表包括层叠样式表(CSS)。
3.根据权利要求1所述的方法,其中,确定所述网页是否包括加载所述外部指定资源的指令包括:
接收所述网页对于其包括待加载的指令的元素的指示符;以及
确定所述元素是否与所述外部指定资源相关联。
4.根据权利要求3所述的方法,其中,所述元素包括类或标识符。
5.根据权利要求3所述的方法,其中,所述元素的所述指示符是从超文本标记语言(“HTML”)解析器或HTML预加载扫描器中的至少一个接收的。
6.根据权利要求3所述的方法,其中,所述网页对于其包括待加载的指令的所述元素的所述指示符是在所述网页正在被下载的同时接收的。
7.根据权利要求1所述的方法,其中,识别由所述样式表指定的所述外部指定资源包括识别与所述外部指定资源相关联的至少一个类或标识符。
8.根据权利要求7所述的方法,其中,识别由所述样式表指定的所述外部指定资源进一步包括识别与所述外部指定资源相关联的至少一个类型、属性、语言或访问状态。
9.一种用于预加载样式表的网页外部指定资源的系统,所述系统包括:
包括指令的存储器;以及
处理器,被配置为执行所述指令以:
在完成样式表的下载之后以及在完成网页的下载之前识别由所述网页的所述样式表指定的外部指定资源,所述外部指定资源包括图像、字体、音频数据或视频数据中的至少一个,并且所述样式表和所述网页是分立的文件;
在下载所述网页的同时构造文档对象模型DOM和渲染树;
通过在下载所述网页的同时构造所述渲染树时将所述渲染树与来自完成下载的所述网页的所述样式表的外部指定资源进行比较以确定所述渲染树是否包括下载所述外部指定资源的指令,来确定所述网页是否包括加载所述外部指定资源的指令;以及
当所述确定指示所述网页包括加载所述外部指定资源的指令时,加载由所述网页的所述样式表指定的所述外部指定资源。
10.根据权利要求9所述的系统,其中,所述样式表包括层叠样式表(CSS)。
11.根据权利要求9所述的系统,其中,所述处理器被配置为执行所述指令以确定所述网页是否包括加载所述外部指定资源的指令包括所述处理器被配置为执行所述指令以:
接收所述网页对于其包括待加载的指令的元素的指示符;以及
确定所述元素是否与所述外部指定资源相关联。
12.根据权利要求11所述的系统,其中,所述元素包括类或标识符。
13.根据权利要求11所述的系统,其中,所述元素的所述指示符是从超文本标记语言(HTML)解析器或HTML预加载扫描器中的至少一个接收的。
14.根据权利要求11所述的系统,其中,所述网页对于其包括待加载的指令的所述元素的所述指示符是在所述网页正在被下载的同时接收的。
15.根据权利要求9所述的系统,其中,所述处理器被配置为执行所述指令以识别由所述样式表指定的所述外部指定资源包括所述处理器被配置为执行所述指令以识别与所述外部指定资源相关联的至少一个类或标识符。
16.根据权利要求15所述的系统,其中,所述处理器被配置为执行所述指令以识别由所述样式表指定的所述外部指定资源进一步包括所述处理器被配置为执行所述指令以识别与所述外部指定资源相关联的至少一个类型、属性、语言或访问状态。
17.一种非暂时性机器可读存储介质,包括用于使处理器执行用于预加载样式表的网页外部指定资源的方法的机器可读指令,所述方法包括:
在完成样式表的下载之后以及在完成网页的下载之前识别与由所述网页的所述样式表指定的外部指定资源相关联的至少一个类或标识符,所述外部指定资源包括图像、字体、音频数据或视频数据中的至少一个,并且所述样式表和所述网页是分立的文件;
在下载所述网页的同时构造文档对象模型DOM和渲染树;
通过在下载所述网页的同时构造所述渲染树时将所述渲染树与来自完成下载的所述网页的所述样式表的外部指定资源进行比较以确定所述渲染树是否包括下载所述外部指定资源的指令,来确定所述网页是否包括加载所述至少一个类或标识符的指令;以及
当所述确定指示所述网页包括加载所述外部指定资源的指令时,加载由所述网页的所述样式表指定的所述外部指定资源。
CN201480059807.0A 2013-10-31 2014-10-30 样式表推测性预加载 Active CN105683957B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/069,311 US9330074B2 (en) 2013-10-31 2013-10-31 Style sheet speculative preloading
US14/069,311 2013-10-31
PCT/US2014/063247 WO2015066375A1 (en) 2013-10-31 2014-10-30 Style sheet speculative preloading

Publications (2)

Publication Number Publication Date
CN105683957A CN105683957A (zh) 2016-06-15
CN105683957B true CN105683957B (zh) 2020-02-07

Family

ID=51932592

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480059807.0A Active CN105683957B (zh) 2013-10-31 2014-10-30 样式表推测性预加载

Country Status (4)

Country Link
US (1) US9330074B2 (zh)
EP (1) EP3063676A1 (zh)
CN (1) CN105683957B (zh)
WO (1) WO2015066375A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102151457B1 (ko) * 2014-08-25 2020-09-03 삼성전자 주식회사 통신 시스템에서 페이지 로딩 시간 단축 방법 및 장치
CN108304179A (zh) * 2016-10-08 2018-07-20 阿里巴巴集团控股有限公司 一种Web Components组件中引入样式的方法及装置
CN108572965B (zh) * 2017-03-08 2020-03-31 阿里巴巴集团控股有限公司 一种资源加载方法及装置
US11055365B2 (en) 2018-06-29 2021-07-06 Paypal, Inc. Mechanism for web crawling e-commerce resource pages
US11461535B2 (en) * 2020-05-27 2022-10-04 Bank Of America Corporation Video buffering for interactive videos using a markup language
CN111753231B (zh) * 2020-06-23 2022-07-01 厦门美柚股份有限公司 第三方h5页面加载的方法、装置及计算机可读存储介质
CN111753232B (zh) * 2020-06-23 2022-07-01 厦门美柚股份有限公司 第三方h5页面加载的方法、装置及计算机可读存储介质
CN111753233B (zh) * 2020-06-23 2022-06-28 厦门美柚股份有限公司 第三方h5页面加载的方法、装置及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103258056A (zh) * 2013-05-31 2013-08-21 北京奇虎科技有限公司 处理风格样式表的方法、服务器、客户端和系统
CN103281387A (zh) * 2013-05-31 2013-09-04 北京奇虎科技有限公司 处理网页中子资源的方法、服务器、客户端和系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120110433A1 (en) * 2010-10-28 2012-05-03 Microsoft Corporation Parallel web page processing
GB2492096B (en) * 2011-06-21 2014-02-19 Canon Kk Method for processing a structured document to render, and corresponding processor
CN102346770B (zh) * 2011-09-21 2014-05-14 晨星软件研发(深圳)有限公司 WebKit浏览器网页内容加载方法及装置
US20130159082A1 (en) * 2011-12-16 2013-06-20 Comcast Cable Communications, Llc Managing electronic mail
US20140053064A1 (en) * 2012-08-16 2014-02-20 Qualcomm Incorporated Predicting the usage of document resources
GB2507749A (en) * 2012-11-07 2014-05-14 Ibm Ensuring completeness of a displayed web page
WO2014168936A1 (en) * 2013-04-10 2014-10-16 Ho Lap-Wah Lawrence Method and apparatus for processing composite web transactions
US20140325345A1 (en) * 2013-04-26 2014-10-30 Amazon Technologies, Inc. Consistent Scaling of Web-Based Content Across Devices Having Different Screen Metrics

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103258056A (zh) * 2013-05-31 2013-08-21 北京奇虎科技有限公司 处理风格样式表的方法、服务器、客户端和系统
CN103281387A (zh) * 2013-05-31 2013-09-04 北京奇虎科技有限公司 处理网页中子资源的方法、服务器、客户端和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ZOOMM: A Parallel Web Browser Engine for Multicore Mobile Devices;Calin Cascaval et al.;《Principles of Programming Language,ACM》;20130223;参见论文第2-4、6节 *

Also Published As

Publication number Publication date
US20150121198A1 (en) 2015-04-30
EP3063676A1 (en) 2016-09-07
WO2015066375A1 (en) 2015-05-07
US9330074B2 (en) 2016-05-03
CN105683957A (zh) 2016-06-15

Similar Documents

Publication Publication Date Title
CN105683957B (zh) 样式表推测性预加载
EP3465467B1 (en) Web page accelerations for web application hosted in native mobile application
US10019716B1 (en) Method for feedback submission resolution
US10843080B2 (en) Automated program synthesis from natural language for domain specific computing applications
US8612418B2 (en) Mobile web browser for pre-loading web pages
US8245125B1 (en) Hybrid rendering for webpages
US9400633B2 (en) Methods and apparatus for voiced-enabling a web application
US10013497B1 (en) Background reloading of currently displayed content
US9292253B2 (en) Methods and apparatus for voiced-enabling a web application
US9811602B2 (en) Method and apparatus for defining screen reader functions within online electronic documents
US11677809B2 (en) Methods for transforming a server side template into a client side template and devices thereof
US20150040098A1 (en) Systems and methods for developing and delivering platform adaptive web and native application content
US9781262B2 (en) Methods and apparatus for voice-enabling a web application
US20130151937A1 (en) Selective image loading in mobile browsers
US10157612B2 (en) Methods and apparatus for voice-enabling a web application
US9792383B2 (en) Unload and display content placeholders with versions
US9292252B2 (en) Methods and apparatus for voiced-enabling a web application
US11930096B2 (en) Systems and methods for rendering interactive web pages
WO2014134990A1 (en) Method, device and computer-readable storage medium for closure testing
US10013259B2 (en) User initiated data rollback using operating system partitions
CN107077484B (zh) 生成应用的网络浏览器视图
EP3852032A1 (en) Machine first approach for identifying accessibility, non-compliances, remediation techniques and fixing at run-time
CN109726346B (zh) 页面组件处理方法及装置
US20130111433A1 (en) Method and apparatus for generating application programs
US20180270163A1 (en) Profile guided load optimization for browsers

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

GR01 Patent grant
GR01 Patent grant