CN109344351A - 网页加载方法、中间服务器和网页加载系统 - Google Patents
网页加载方法、中间服务器和网页加载系统 Download PDFInfo
- Publication number
- CN109344351A CN109344351A CN201811214791.2A CN201811214791A CN109344351A CN 109344351 A CN109344351 A CN 109344351A CN 201811214791 A CN201811214791 A CN 201811214791A CN 109344351 A CN109344351 A CN 109344351A
- Authority
- CN
- China
- Prior art keywords
- script
- page
- additional cargo
- webpage loading
- cargo list
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例涉及互联网领域,公开了一种网页加载方法、中间服务器和网页加载系统。本发明中网页加载方法,应用于中间服务器,网页加载方法包括:在接收到来自用户终端的页面加载请求时,根据加载请求获得对应页面的加载清单,加载清单中包括若干个异步加载项;在加载清单中增加调度脚本,其中,调度脚本用于在页面加载完成后,模拟页面的加载过程,在模拟出的加载过程中执行异步加载项;将增加调度脚本后的加载清单反馈给用户终端,供用户终端请求加载清单上的各加载项以进行页面加载,以提升网页加载速度。
Description
技术领域
本发明实施例涉及互联网领域,特别涉及网页加载技术。
背景技术
一个页面中有多种资源,如HTML、JS(JavaScript)、CSS(Cascading Style Sheet,层叠样式表单)和IMAGE(图片)等。脚本(Script)是批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等。一个页面中有多种元素,如HTML、JS(即JavaScript的缩写)、CSS(Cascading Style Sheet,层叠样式表单)和图片等等。
JS脚本在浏览器的工作方式中,默认情况下遇到一段脚本时,浏览器需要停止并等待它执行完成,然后才能完成绘制页面,这意味着,文件是一个一个加载和执行,如果javascript加载或者执行时间过长,会阻塞后续大量资源请求,从而造成页面加载时间变长。这将影响浏览器的执行时间,当页面架构不合理,JS脚本位置靠前时,就会出现首屏加载缓慢,图片出不来,长期显示白屏,用户体验差的问题。
发明内容
本发明实施方式的目的在于提供一种网页加载方法、中间服务器和网页加载系统,使得提升网页加载速度。
为解决上述技术问题,本发明的实施方式提供了一种网页加载方法,应用于中间服务器,所述网页加载方法包括:在接收到来自用户终端的页面加载请求时,根据所述加载请求获得对应所述页面的加载清单,所述加载清单中包括若干个异步加载项;在所述加载清单中增加调度脚本,其中,所述调度脚本用于在所述页面加载完成后,模拟所述页面的加载过程,在模拟出的加载过程中执行所述异步加载项;将增加调度脚本后的加载清单反馈给所述用户终端,供所述用户终端请求所述加载清单上的各加载项以进行页面加载。
本发明的实施方式还提供了一种中间服务器,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述的网页加载方法。
本发明的实施方式还提供了一种网页加载系统,包括:用户终端和如上述的中间服务器。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上所述的网页加载方法。
本发明实施方式相对于现有技术而言,主要区别及其效果在于:利用在原加载清单中添加调度脚本,实现延后执行加载清单中的异步加载项。具体在页面加载完成后再次模拟出一系列页面加载过程,使各异步加载项在模拟出的加载过程中执行,由于各异步加载项有原本的执行时机,在页面加载完成后凭空执行可能造成页面的渲染重置或延后,造成用户只能看到很少内容的白屏情况。可见,本发明实施方式中网页加载方法、中间服务器和网页加载系统提升页面加载速度的同时,使各异步加载项可顺利执行,避免现有页面加载优化时出现的不兼容问题。另外,本发明实施方式创新地改进了行内既定的网站优化模式,既不需要改变用户终端的配置,也不需要改变源站的代码,又不需要改变需访问页面源站的网站构架,实施便捷,可以减少网站拥有者的技术开发时间,给用户终端侧提供更优质的上网体验,便于本发明实施方式的推广。
作为进一步改进,所述根据加载请求获得对应所述页面的加载清单之后,以及所述将增加调度脚本后的加载清单反馈给所述用户终端之前,还包括:将表征所述异步加载项类型的字符串替换为预设字符串;所述在加载清单中增加调度脚本,具体为:在替换预设字符串后的加载清单中增加调度脚本;所述调度脚本具体用于在模拟出的加载过程中执行所述异步加载项前,利用所述预设字符串识别出所述异步加载项。本实施例可以防止浏览器在第一次加载页面时解析异步加载项。
作为进一步改进,所述调度脚本具体用于,通过改写所述加载清单的文档状态,注册并触发预设事件以模拟页面的加载过程。本实施例明确模拟页面加载过程的方式。
作为进一步改进,所述异步加载项对应有延迟属性和非延迟属性;所述调度脚本具体用于:在所述非延迟属性的异步加载项执行完成后,再执行所述延迟属性的异步加载项。本实施例明确了两类异步加载项的执行时机,进一步减少不兼容问题。
作为进一步改进,所述调度脚本具体用于:在设置当前文档状态readyState=loading,注册并触发window.load事件后执行所述非延迟属性的异步加载项;在设置当前文档状态readyState=interactive,触发onreadystatechange事件后执行所述延迟属性的异步加载项。本实施例进一步明确了异步加载项的执行时机,进一步减少不兼容问题。
作为进一步改进,所述调度脚本具体用于在改写所述加载清单的文档状态前,拦截第一类预设事件。本实施例避免页面在第一次加载完成后重新渲染,进一步避免异步加载项执行时的白屏现象。
作为进一步改进,所述第一类预设事件包括以下之一或其任意组合:document.onreadystatechange事件、window.onload事件、document.body.onload事件。本实施例明确了需拦截的事件。
作为进一步改进,所述在加载清单中增加调度脚本之前,还包括:判断是否采用优化服务,并在判定为是时,执行所述在加载清单中增加调度脚本的步骤。本实施例只在判定为需要优化时才进入,使得本发明实施方式更符合实际情况。
作为进一步改进,还包括:在所述根据加载请求获得对应所述页面的加载清单时,本地保存所述加载清单;所述将增加调度脚本后的加载清单反馈给所述用户终端之后,还包括:判断所述待加载页面在所述用户终端上是否加载出错;若判定加载出错,则向所述用户终端发送未增加调度脚本的原加载清单。本实施例更全面地监控页面加载情况,一旦出现不兼容问题,可以反馈原加载清单供重新加载,避免出错。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明第一实施方式中的网页加载方法流程图;
图2是根据本发明第二实施方式中的网页加载方法流程图;
图3是根据本发明第一实施方式中的网页加载系统的整体工作流程图;
图4是根据本发明第三实施方式中的浏览器的一般渲染过程流程图;
图5是根据本发明第三实施方式中的调度脚本的执行流程图;
图6是根据本发明第五实施方式中的中间服务器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明的第一实施方式涉及一种网页加载方法。
本实施方式应用于一种中间服务器(下部分简称为“服务器”),中间服务器可以是网络中用于传递数据的一些服务器,它接收客户端发送的请求,之后将请求发送到后端(即源站服务器)获取后端响应,在收到后端响应后,再将响应内容以适当的形式发送给前端(即客户端)。例如:CDN节点是非常典型的中间服务器,其响应所需的数据均是后端产生的,只是可能会缓存在节点上;负载均衡服务器也是非常典型的中间服务器,用于接收客户端的请求,并发请求分散到多个后端服务器上;代理服务器也是中间服务器,负责转发请求到真正的后端服务器上,可见,实际应用中有不同种类的中间服务器,在此不再一一列举。
本实施方式中的网页加载方法的流程如图1所示,具体如下:
步骤101,根据加载请求获得对应页面的加载清单。
具体的说,本步骤在接收到来自用户终端的页面加载请求时,根据加载请求获得对应页面的加载清单。更具体的说,加载清单实际应用中可以是html文档,其中包括若干个异步加载项,本实施方式以异步加载项为JS脚本为例进行说明,实际应用中加载清单中除了异步加载项外,还有HTML、CSS和图片等,在此不再一一列举。
步骤102,在加载清单中增加调度脚本。
具体的说,调度脚本用于在页面加载完成后,模拟页面的加载过程,在模拟出的加载过程中执行异步加载项,本实施方式中的页面加载过程主要指的是浏览器渲染的过程。
步骤103,将增加调度脚本后的加载清单反馈给用户终端,供用户终端请求加载清单上的各加载项以进行页面加载。
具体的说,用户终端侧在收到加载清单后,即可进行解析执行等步骤,无需改变浏览器本身的操作流程,加载清单中的调度脚本将会完成页面加载过程的模拟以及JS脚本的调用执行。
需要说明的是,上述步骤101至103涉及的是中间服务器的主要执行步骤,本实施方式继续以中间服务器为边缘节点、用户终端为用户浏览器为例,说明实际应用的网页加载系统的整体工作流程,其流程图如图3所示。具体的说,首先由用户浏览器向边缘节点发起网站访问请求,边缘节点接收到用户请求后,向源站服务器请求资源,源站服务器收到请求后,返回原始html文档(即加载清单),边缘节点收到html文档后,根据服务器配置判断是否改写,也就是说,边缘节点判断是否采用优化服务,具体可以根据加载请求中的请求地址判断,如果判定为是,那么边缘脚本就对html文档内容进行改写,也就是说,在判定为是时,将在html文档中增加调度脚本,之后将改写后的html文档发送至用户浏览器,如果判定为否,则直接将原始html文档发送至用户浏览器,用户浏览器在收到html文档后,进行解析,解析中调度脚本对JS脚本进行加载、执行,直至解析完成。可见,图3也是浏览器在加载页面时的完整过程。
此外,如果为了提升页面的加载速度,而简单地将加载清单中的JS脚本延后执行,会打乱JS脚本的执行时机,现有加载过程中,对各加载项的加载时机有约定,随意改变可能会造成加载不成功,或引发其他已加载项的错误。所以,本发明人提出,在页面加载完成后,重新模拟页面的加载过程,这样,JS脚本仍在原有的加载周期中加载,不会造成混乱,或引发其他未知错误。
可见,本实施方式相对于现有技术而言,主要区别及其效果在于:利用在原加载清单中添加调度脚本,实现延后执行加载清单中的异步加载项。具体在页面加载完成后再次模拟出一系列页面加载过程,使各异步加载项在模拟出的加载过程中执行,由于各异步加载项有原本的执行时机,在页面加载完成后凭空执行可能造成页面的渲染重置或延后,造成用户只能看到很少内容的白屏情况。可见,本实施方式中网页加载方法在提升页面加载速度的同时,使各异步加载项可顺利执行,避免现有页面加载优化时出现的不兼容问题。另外,本实施方式创新地改进了行内既定的网站优化模式,既不需要改变用户终端的配置,也不需要改变源站的代码,又不需要改变需访问页面源站的网站构架,实施便捷,可以减少网站拥有者的技术开发时间,给用户终端侧提供更优质的上网体验,便于本发明实施方式的推广。
本发明的第二实施方式涉及一种网页加载方法。第二实施方式与第一实施方式大致相同,主要区别之处在于:在本发明第二实施方式中,增加对异步加载项的改写步骤,防止浏览器在第一次加载页面时解析异步加载项。
本实施方式中的网页加载方法的流程如图2所示,具体如下:
步骤201和第一实施方式中的步骤101相类似,在此不再赘述。
步骤202,将表征异步加载项类型的字符串替换为预设字符串。
具体的说,以JS脚本为例,TYPE属性对应的字符串为“javascript”,浏览器解析加载清单时,一旦遇到该字符串的TYPE,即可识别出是JS脚本,造成解析耗时较长。
本实施方式将“javascript”改写为预设字符串,如“comet”,使浏览器无法识别出该JS脚本。具体实例如下:
(1)普通脚本:<script type="text/javascript"></script>改写为:
<script type="comet_text/comet"></script>
(2)延迟脚本:<script type="text/javascript"defer></script>改写为:
<script type="comet_text/comet"defer></script>
另外,除了上述内联标签中的“javascript”需要改下,外链标签中的“javascript”也可以改下,具体实例如下:
(1)普通脚本:<script type="text/javascript"src="xxx"></script>改写为:
<script type="comet_text/comet"src="xxx"></script>
(2)延迟脚本:<script type="text/javascript"src="xxx"defer></script>改写为:
<script type="comet_text/comet"src="xxx"defer></script>
还需要说明的是,预设字符串作为新的约定以识别JS脚本,所以在改写后,调度脚本在需要执行异步加载项时,可以利用预设字符串识别出原有的JS脚本,保证JS脚本被顺利执行。
步骤203和第一实施方式中的步骤102相类似,在此不再赘述。另外,上述步骤202和步骤203的执行顺序可以根据实际需求设置,实际应用中,也可以先执行步骤203插入调度脚本,再执行步骤202改写表征异步加载项类型的字符串,所以,步骤202和步骤203的执行顺序在此不做限定。
步骤204和第一实施方式中的步骤103相类似,在此不再赘述。
可见,本发明实施方式中的网页加载方法可以防止浏览器在第一次加载页面时解析异步加载项,尽可能减少首屏加载时间。
本发明的第三实施方式涉及一种网页加载方法。本实施方式中提供了一种具体的调度脚本执行流程。
浏览器的一般渲染过程如图4所示,在整个渲染过程中,html文档(下部分简称为“文档”)状态共包括四个状态,也就是说,Document.readyState属性具体有四个值:uninitialized(未开始载入)、loading(载入中)、interactive(已加载,文档和用户开始交互)、complete(载入完成),在特定阶段还会触发特定事件。本实施方式中的调度脚本具体用于改写加载清单的文档状态,注册并触发预设事件,从而模拟页面的加载过程。
进一步说,由于在网页加载过程中需要构建dom树,现在对dom树和本申请中模拟出的页面加载过程的关系进行概要说明:在开始加载后,首先将Document.readyState属性设置为uninitialized,开始构建dom树,再将Document.readyState属性设置为loading,随后执行非defer属性脚本,在dom树构建即将完成时,将Document.readyState属性设置为interactive,随后执行defer属性脚本,之后在dom树构建完成后,触发domcontentloaded事件,之后在页面资源完成下载后,将Document.readyState属性设置为complete,接着再触发page load事件,从而结束整个页面加载过程。
本实施方式中的调度脚本的执行流程可以如图5所示,具体如下:
步骤501,拦截第一类预设事件。
具体的说,第一类预设事件可以包括以下之一或其任意组合:document.onreadystatechange(文档状态改变)事件、window.onload(页面加载完成)事件、document.body.onload(页面加载完成)事件。由于原有html文档中可能存在监听脚本,在监听到上述事件后,将对待加载页面重新渲染,所以拦截上述事件可以进一步避免网页白屏,提升调度脚本的兼容性。
值得一提的是,由于实际应用中,源站服务器提供的html文档可能不存在上述事件的监听脚本,那么调度脚本中也可以不执行本步骤501,也就是说,步骤501可以为非必要步骤。
步骤502,设置当前文档状态readyState=loading(文档状态加载中),并注册window.load(页面加载完成)事件。
具体的说,本步骤改写了html文档的状态,也就是对原本已加载完成的页面进行模拟加载,后续对加载清单中各JS脚本进行加载。
步骤503,在浏览器页面加载完成时,触发window.load事件。
步骤504,扫描文档中非延迟属性的脚本,加入脚本执行队列。
具体的说,异步加载项对应有延迟属性和非延迟属性,其中的延迟属性用defer表征,非延迟属性即属性字符串中不包含defer的属性,所以在扫描时,通过扫描“defer”即可明确是否为延迟属性的脚本。
还需要说明的是,本实施方式可以和第二实施方式结合使用,也就是预先对异步加载项的属性进行改写,改写时利用预设字符串进行替换,那么在本步骤进行扫描时,即可用预设字符串进行扫描,从而明确是否为异步加载项。
如:预设字符串为“comet”,预先将“javascript”替换为“comet”避免浏览器在第一次加载页面时对其解析,那么在步骤504中通过“comet”识别出需要执行的异步加载项。
步骤505,执行队列中的脚本。
具体的说,可以根据脚本加入队列的时间前后关系,依次执行队列中的脚本。
还需说明的是,上述步骤502至504在设置当前文档状态readyState=loading,注册并触发window.load事件后执行非延迟属性的异步加载项。
步骤506,设置当前文档状态readyState=interactive(文档状态为已加载,文档和用户开始交互),触发onreadystatechange(文档状态改变)事件。
步骤507,扫描文档中延迟属性的脚本,加入脚本执行队列。
步骤508,执行队列中的脚本。
具体的说,根据脚本加入队列的时间前后关系,依次执行队列中的脚本。
还需说明的是,上述步骤506至508在设置当前文档状态readyState=interactive,触发onreadystatechange事件后执行延迟属性的异步加载项。
还需说明的是,本实施方式中在非延迟属性的异步加载项执行完成后,再执行延迟属性的异步加载项,保证不同类型的异步加载项均被准确执行。
步骤509,触发浏览器DomContentLoaded事件。
步骤510,设置当前文档状态readyState=complete,触发onreadystatechange事件。
步骤511,触发浏览器page load事件。
具体的说,至此页面脚本解析结束,在各异步加载项被加载完成后,仍继续模拟加载过程中的剩余阶段,避免页面出现重新渲染的问题。
值得一提的是,本发明的发明人使用2台测试机器同时开始测试,范围涉及159个网站,分别测试未加速场景和加速场景的domcontentloaded(HTML文档已完全加载和解析)时间以及page load(页面资源加载成功)时间,并且统计使用加速场景的网站兼容性指标。测试结果如下表1-3:
表1加速场景平均优化率
domcontentloaded | pageload | |
平均优化率 | 24.8% | 33.8% |
表2加速场景加速效果
优化率>0%(网站数) | 优化率>50%(网站数) | |
domcontentloaded | 127 | 64 |
pageload | 127 | 36 |
表3加速场景兼容性指标
可见,加速场景平均优化率、加速场景加速效果、加速场景兼容性指标均体现了本发明实施方式不仅加速效果好,兼容率也大有提升,符合产品上线要求。
本实施方式中明确了调度脚本具体模拟过程,且在特定过程中执行对应属性的异步加载项,使得异步加载项均可以被准确执行,也尽可能避免了待加载页面在第一次加载完成后重新渲染。
本发明的第四实施方式涉及一种网页加载方法。第四实施方式是在第一实施方式的基础上做了进一步改进,主要改进之处在于:在本发明第四实施方式中,源站服务器返回的原始加载清单被中间服务器保存,使得后续接收到相同的页面加载请求时,可以直接处理,无需再从源站服务器请求,减化网页加载流程,加速网页加载速度。
具体的说,本实施方式在获得对应页面的加载清单后,进行本地保持,本地保持的加载清单可以定时更新,以便下次用户终端请求时,可以无需向源站请求,直接提供加载清单。
本发明另一实施方式中,在加载清单反馈给用户终端之后,还可以包括:判断待加载页面在用户终端上是否加载出错;若判定加载出错,则向用户终端发送未增加调度脚本的原加载清单。
具体的说,实际应用中可以利用在原加载清单中预添加的监控脚本,判断待加载页面在用户终端上是否加载出错。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第五实施方式涉及一种中间服务器,如图6所示,包括:
至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一实施方式至第四实施方式中任一的网页加载方法。
其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
本发明第六实施方式涉及一种网页加载系统,具体包括:用户终端和如第五实施方式中的中间服务器。
不难发现,本实施方式为与第六实施方式相对应的系统实施例,本实施方式可包含第六实施方式的技术方案,第六实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。
本发明第七实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (15)
1.一种网页加载方法,其特征在于,应用于中间服务器,所述网页加载方法包括:
在接收到来自用户终端的页面加载请求时,根据所述加载请求获得对应所述页面的加载清单,所述加载清单中包括若干个异步加载项;
在所述加载清单中增加调度脚本,其中,所述调度脚本用于在所述页面加载完成后,模拟所述页面的加载过程,在模拟出的加载过程中执行所述异步加载项;
将增加调度脚本后的加载清单反馈给所述用户终端,供所述用户终端请求所述加载清单上的各加载项以进行页面加载。
2.根据权利要求1所述的网页加载方法,其特征在于,所述根据加载请求获得对应所述页面的加载清单之后,以及所述将增加调度脚本后的加载清单反馈给所述用户终端之前,还包括:
将表征所述异步加载项类型的字符串替换为预设字符串;
所述在加载清单中增加调度脚本,具体为:在替换预设字符串后的加载清单中增加调度脚本;
所述调度脚本具体用于在模拟出的加载过程中执行所述异步加载项前,利用所述预设字符串识别出所述异步加载项。
3.根据权利要求1所述的网页加载方法,其特征在于,所述调度脚本具体用于,通过改写所述加载清单的文档状态,注册并触发预设事件以模拟页面的加载过程。
4.根据权利要求3所述的网页加载方法,其特征在于,所述异步加载项对应有延迟属性和非延迟属性;
所述调度脚本具体用于:在所述非延迟属性的异步加载项执行完成后,再执行所述延迟属性的异步加载项。
5.根据权利要求4所述的网页加载方法,其特征在于,所述调度脚本具体用于:
在设置当前文档状态readyState=loading,注册并触发window.load事件后执行所述非延迟属性的异步加载项;
在设置当前文档状态readyState=interactive,触发onreadystatechange事件后执行所述延迟属性的异步加载项。
6.根据权利要求3所述的网页加载方法,其特征在于,所述调度脚本具体用于在改写所述加载清单的文档状态前,拦截第一类预设事件。
7.根据权利要求6所述的网页加载方法,其特征在于,所述第一类预设事件包括以下之一或其任意组合:document.onreadystatechange事件、window.onload事件、document.body.onload事件。
8.根据权利要求1所述的网页加载方法,其特征在于,所述异步加载项为JS脚本。
9.根据权利要求1所述的网页加载方法,其特征在于,所述在加载清单中增加调度脚本之前,还包括:
判断是否采用优化服务,并在判定为是时,执行所述在加载清单中增加调度脚本的步骤。
10.根据权利要求9所述的网页加载方法,其特征在于,根据所述页面加载请求中的请求地址,判断是否采用所述优化服务。
11.根据权利要求1所述的网页加载方法,其特征在于,还包括:在所述根据加载请求获得对应所述页面的加载清单时,本地保存所述加载清单。
12.根据权利要求11所述的网页加载方法,其特征在于,所述将增加调度脚本后的加载清单反馈给所述用户终端之后,还包括:
判断所述待加载页面在所述用户终端上是否加载出错;
若判定加载出错,则向所述用户终端发送未增加调度脚本的原加载清单。
13.一种中间服务器,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至12中任一所述的网页加载方法。
14.一种网页加载系统,其特征在于,包括:用户终端和如权利要求13所述的中间服务器。
15.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12中任一项所述的网页加载方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811214791.2A CN109344351B (zh) | 2018-10-18 | 2018-10-18 | 网页加载方法、中间服务器和网页加载系统 |
PCT/CN2018/119601 WO2020077765A1 (zh) | 2018-10-18 | 2018-12-06 | 网页加载方法、中间服务器和网页加载系统 |
EP18937092.7A EP3866031A4 (en) | 2018-10-18 | 2018-12-06 | WEBSITE LOADING PROCEDURE, INTERMEDIATE SERVER AND WEBSITE LOADING SYSTEM |
US16/497,243 US20210365520A1 (en) | 2018-10-18 | 2018-12-06 | Webpage loading method, intermediate server and webpage loading system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811214791.2A CN109344351B (zh) | 2018-10-18 | 2018-10-18 | 网页加载方法、中间服务器和网页加载系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109344351A true CN109344351A (zh) | 2019-02-15 |
CN109344351B CN109344351B (zh) | 2021-01-05 |
Family
ID=65310031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811214791.2A Active CN109344351B (zh) | 2018-10-18 | 2018-10-18 | 网页加载方法、中间服务器和网页加载系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210365520A1 (zh) |
EP (1) | EP3866031A4 (zh) |
CN (1) | CN109344351B (zh) |
WO (1) | WO2020077765A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114611039B (zh) * | 2022-02-25 | 2024-02-20 | 盐城天眼察微科技有限公司 | 异步加载规则的解析方法、装置、存储介质和电子设备 |
CN115292158B (zh) * | 2022-06-29 | 2024-01-23 | 优视科技(中国)有限公司 | 获取和配置页面加载进度的方法及装置 |
CN117971345A (zh) * | 2024-02-18 | 2024-05-03 | 太极计算机股份有限公司 | 一种声明式组件的加载响应优化方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120047497A1 (en) * | 2007-06-08 | 2012-02-23 | Apple Inc. | Asynchronous load of source dependencies |
US20130179767A1 (en) * | 2012-01-05 | 2013-07-11 | Microsoft Corporation | Reducing Ad Impact to Browser Onload Event |
CN103631905A (zh) * | 2013-11-22 | 2014-03-12 | 北京奇虎科技有限公司 | 一种网页的加载方法和浏览器 |
CN104111836A (zh) * | 2014-07-14 | 2014-10-22 | 浪潮软件集团有限公司 | 一种网络采集处理异步加载数据的方法 |
CN104573025A (zh) * | 2015-01-12 | 2015-04-29 | 北京京东尚科信息技术有限公司 | 一种提高页面加载速度的方法及系统 |
CN104754073A (zh) * | 2015-03-25 | 2015-07-01 | 百度在线网络技术(北京)有限公司 | 一种资源访问方法及装置 |
CN105745645A (zh) * | 2013-11-01 | 2016-07-06 | 柯宝科技公司 | 确定网页处理状态 |
CN105760405A (zh) * | 2014-12-19 | 2016-07-13 | 阿里巴巴集团控股有限公司 | 用于加载web页面的网络资源获取方法、缓存方法及装置 |
CN106294658A (zh) * | 2016-08-04 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 网页快速展示方法和装置 |
CN108476244A (zh) * | 2016-01-13 | 2018-08-31 | 三星电子株式会社 | 通过利用网络延迟来缩短页面加载时间的方法和系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080172258A1 (en) * | 2007-01-16 | 2008-07-17 | Safelite Group, Inc. | System, method, and user interface for facilitating automotive glass repair and replacement |
US8285808B1 (en) * | 2011-05-20 | 2012-10-09 | Cloudflare, Inc. | Loading of web resources |
US8893014B1 (en) * | 2012-06-28 | 2014-11-18 | Google Inc. | Deferred loading of a web page |
US20150088970A1 (en) * | 2013-09-20 | 2015-03-26 | Yottaa Inc. | Systems and methods for managing loading priority or sequencing of fragments of a web object |
CN104182547A (zh) * | 2014-09-10 | 2014-12-03 | 北京浩瀚深度信息技术股份有限公司 | 一种服务器优化页面渲染的方法及web cache服务器 |
CN105005596B (zh) * | 2015-07-02 | 2018-10-30 | 深圳市信锐网科技术有限公司 | 页面显示方法及装置 |
CN106055575A (zh) * | 2016-05-19 | 2016-10-26 | 天脉聚源(北京)传媒科技有限公司 | 一种网站页面优化加载的方法及装置 |
-
2018
- 2018-10-18 CN CN201811214791.2A patent/CN109344351B/zh active Active
- 2018-12-06 EP EP18937092.7A patent/EP3866031A4/en not_active Withdrawn
- 2018-12-06 WO PCT/CN2018/119601 patent/WO2020077765A1/zh unknown
- 2018-12-06 US US16/497,243 patent/US20210365520A1/en not_active Abandoned
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120047497A1 (en) * | 2007-06-08 | 2012-02-23 | Apple Inc. | Asynchronous load of source dependencies |
US20130179767A1 (en) * | 2012-01-05 | 2013-07-11 | Microsoft Corporation | Reducing Ad Impact to Browser Onload Event |
CN105745645A (zh) * | 2013-11-01 | 2016-07-06 | 柯宝科技公司 | 确定网页处理状态 |
CN103631905A (zh) * | 2013-11-22 | 2014-03-12 | 北京奇虎科技有限公司 | 一种网页的加载方法和浏览器 |
CN104111836A (zh) * | 2014-07-14 | 2014-10-22 | 浪潮软件集团有限公司 | 一种网络采集处理异步加载数据的方法 |
CN105760405A (zh) * | 2014-12-19 | 2016-07-13 | 阿里巴巴集团控股有限公司 | 用于加载web页面的网络资源获取方法、缓存方法及装置 |
CN104573025A (zh) * | 2015-01-12 | 2015-04-29 | 北京京东尚科信息技术有限公司 | 一种提高页面加载速度的方法及系统 |
CN104754073A (zh) * | 2015-03-25 | 2015-07-01 | 百度在线网络技术(北京)有限公司 | 一种资源访问方法及装置 |
CN108476244A (zh) * | 2016-01-13 | 2018-08-31 | 三星电子株式会社 | 通过利用网络延迟来缩短页面加载时间的方法和系统 |
CN106294658A (zh) * | 2016-08-04 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 网页快速展示方法和装置 |
Non-Patent Citations (1)
Title |
---|
我要评论: "用js的document.write输出的广告无阻塞加载的方法", 《脚本之家》 * |
Also Published As
Publication number | Publication date |
---|---|
WO2020077765A1 (zh) | 2020-04-23 |
CN109344351B (zh) | 2021-01-05 |
EP3866031A1 (en) | 2021-08-18 |
EP3866031A4 (en) | 2021-12-08 |
US20210365520A1 (en) | 2021-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107590001B (zh) | 负载均衡方法及装置、存储介质、电子设备 | |
CN109213948A (zh) | 网页加载方法、中间服务器和网页加载系统 | |
US10296653B2 (en) | Systems and methods for accelerating web page loading | |
CN108228282A (zh) | 用于网站页面加载的方法及装置 | |
CN110896412B (zh) | 网络请求处理方法及装置、电子设备 | |
CN110034972B (zh) | 服务器压力测试方法和装置 | |
CN108804514A (zh) | 一种网页加载方法、服务器和网页加载系统 | |
CN109344351A (zh) | 网页加载方法、中间服务器和网页加载系统 | |
CN103383687A (zh) | 一种页面处理方法和装置 | |
CN103475744A (zh) | 一种基于Web应用的资源下载方法、装置和系统 | |
CN115657553A (zh) | Pcie拓扑和pcie设备模拟方法、装置、设备及介质 | |
CN111371585A (zh) | 用于cdn节点的配置方法及装置 | |
CN109885347B (zh) | 一种配置数据的获取方法、装置及终端、系统、存储介质 | |
CN109343908B (zh) | 一种延迟加载js脚本的方法和装置 | |
CN101699823A (zh) | 一种在curl库中实现资源缓存的方法 | |
CN109725887A (zh) | 基于消息研发框架的数据交互方法、装置及终端设备 | |
CN113806104A (zh) | 接口访问请求处理方法、api网关、服务器及系统 | |
CN112511595A (zh) | 一种消息推送方法及消息服务系统 | |
CN111447273A (zh) | 云处理系统及基于云处理系统的数据处理方法 | |
CN108228359B (zh) | web程序与R程序集成处理数据的方法和系统 | |
US20140237133A1 (en) | Page download control method, system and program for ie core browser | |
CN113407193A (zh) | 一种系统部署方法、装置和设备 | |
CN112988126A (zh) | Cdn业务定制方法及系统 | |
CN113269590B (zh) | 一种用于资源补贴的数据处理方法、装置和系统 | |
CN116795405B (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 |