脚本文件的加载方法、脚本文件生成方法及装置的制造方法_2

文档序号:8258110阅读:来源:国知局
所详述的、本发明的一些方面相一致的装置和方法的例子。
[0067]图1是根据一示例性实施例示出的脚本文件的加载方法的流程图,该图1是根据一示例性实施例示出的脚本文件的加载方法的流程图可以应用在终端设备(例如:智能手机、平板电脑、PC等)上,可以在终端设备上的浏览器上实现,如图1所示,该脚本文件的加载方法包括以下步骤S101-S103:
[0068]在步骤SlOl中,当浏览器需要加载脚本文件时,向缓存服务器发送脚本文件的文件列表,通知浏览器通过异步加载的方式执行单进程中的任务。
[0069]在一实施例中,例如,当浏览器需要加载filel.js、file2.js、file3.js三个脚本文件时,可以根据浏览器当前所在的IP地址向通信距离最近的缓存服务器(或者内容分发网络(CDN))发送上述三个脚本文件的文件名称;在一实施例中,可以以文件列表的方式发送该三个脚本文件的名称,以使缓存服务器或者CDN根据文件列表确定向终端设备返回浏览器可以加载的脚本文件。
[0070]在一实施例中,可以通过jsloader动态异步加载单进程的其它js文件,例如,其它js文件为网页渲染的脚本文件,由此,可以使浏览器不需要等待加载并执行完上述三个脚本文件即可实现对网页的渲染等操作,从而避免网页处于“假死”状态,提高了浏览器与用户之间交互的实时性。
[0071]在步骤S102中,接收缓存服务器根据文件列表生成的新的脚本文件。
[0072]在一实施例中,新的脚本文件可以根据文件列表中的脚本文件生成;在一实施例中,缓存服务器可以根据文件列表中的脚本文件相互之间的调用关系来确定新的脚本文件的逻辑关系。
[0073]在步骤S103中,通知浏览器停止执行单进程中的任务,通过单进程加载新的脚本文件。
[0074]在一实施例中,例如,当浏览器需要加载filel.js、file2.js、file3.js时,相关技术的实现过程是当需要加载filel.js时,需要向缓存服务器获取filel.js,然后加载,需要记载file2.js时,向缓存服务器获取file2.js,然后加载,需要记载f ile3.js时,向缓存服务器获取file3.js,然后加载,由此,需要与缓存服务器进行三次交互,在浏览器为单进程处理任务的情形下,加载filel.js、file2.js、file3.js的过程会很漫长,而本公开实施例通过加载一个新的脚本文件,可以避免当浏览器需要加载多个脚本文件中,向缓存服务器发送需要加载的脚本文件的时间和记载时间。
[0075]在本实施例中,当浏览器需要加载脚本文件时,由于浏览器仍可以通过异步加载的方式执行单进程中的任务,由于浏览器并没有一直处于等待加载浏览器当前需要加载的脚本文件,而是还可以继续执行单进程中的例如页面解析等任务,因此浏览器与用户的交互是正常的;只有当接收到新的脚本文件时,浏览器停止执行单进程中的任务,并通过单进程加载新的脚本文件,由于整个脚本文件的加载过程并没有使浏览器处于等待过程,因此本公开实施例可以有效地避免在加载脚本文件的过程中产生的阻塞现象。
[0076]在一实施例中,新的脚本文件中的函数逻辑关系可以由需要加载的脚本文件之间的函数逻辑关系确定,步骤S102可包括:
[0077]根据新的脚本文件中的函数逻辑关系通过单进程加载新的脚本文件。
[0078]具体如何在浏览器上加载脚本文件的,请参考后续实施例。
[0079]至此,本公开实施例提供的上述方法,可以有效地避免在加载脚本文件的过程中产生的阻塞现象。
[0080]下面以具体实施例来说明本公开实施例提供的技术方案。
[0081]图2是根据一示例性实施例一示出的脚本文件的加载方法的流程图;本实施例利用本公开实施例提供的上述方法,以通过在浏览器上加载脚本文件为例进行示例性说明,如图2所示,包括如下步骤:
[0082]在步骤S201中,当浏览器需要加载脚本文件时,向缓存服务器发送脚本文件的文件列表,通知浏览器通过异步加载的方式执行单进程中的任务。
[0083]步骤S201的描述可以参考上述步骤SlOl的描述,在此不再详述。
[0084]在步骤S202中,接收缓存服务器根据文件列表生成的新的脚本文件。
[0085]步骤S202的描述可以参考上述步骤S102的描述,在此不再详述。
[0086]在步骤S203中,通知浏览器停止执行单进程中的任务,根据新的脚本文件中的函数逻辑关系加载该新的脚本文件。
[0087]步骤S203的描述可以参考上述步骤S103的描述;此外,在一实施例中,新的脚本文件可以根据文件列表中的脚本文件相互之间的函数逻辑关系来确定,从而可以使浏览器能够正常的加载该新的脚本文件;在一实施例中,函数逻辑关系可以根据脚本文件中的函数调用之间的关系来确定。
[0088]图3是根据一示例性实施例示出的脚本文件生成方法的流程图,该图1是根据一示例性实施例示出的脚本文件的加载方法的流程图可以应用在终端设备(例如:智能手机、平板电脑、PC等)上,可以在终端设备上的浏览器上实现,如图1所示,该脚本文件的加载方法包括以下步骤S101-S103:
[0089]在步骤S301中,接收浏览器需要加载的脚本文件的文件列表。
[0090]在一实施例中,例如,当浏览器以文件列表的方式向缓存服务器要求其返回需要加载filel.js、file2.js、file3.js三个脚本文件时,缓存服务器可以从文件列表中确定浏览器需要加载的是哪些脚本文件。
[0091]在步骤S302中,根据文件列表确定浏览器需要加载的新的脚本文件,新的脚本文件的函数逻辑关系与需要加载的脚本文件的函数逻辑关系相一致。
[0092]在一实施例中,如果缓存服务器上存储有文件列表中的脚本文件,则缓存服务器可以将文件列表中的脚本文件依据函数调用关系或者函数之间的逻辑关系合并为一个新的脚本文件;在另一实施例中,如果缓存服务器上未存储文件列表中的脚本文件,则缓存服务器可以向web服务器发送上述文件列表,并从web服务器获取脚本文件;在一实施例中,web服务器可以根据文件列表依据函数调用关系或者函数之间的逻辑关系合并为一个新的脚本文件,在另一实施例中,web服务器可以将文件列表中的脚本文件发送给缓存服务器,缓存服务器依据函数调用关系或者函数之间的逻辑关系合并为一个新的脚本文件。
[0093]在步骤S303中,将新的脚本文件发送给浏览器。
[0094]在本实施例中,通过生成新的脚本文件并将新的脚本文件发送给浏览器,浏览器停止执行单进程中的任务,并通过单进程加载新的脚本文件,由于整个脚本文件的加载过程并没有使浏览器处于等待过程,因此本公开实施例可以有效地避免在加载脚本文件的过程中产生的阻塞现象。
[0095]在一实施例中,步骤S302可包括:
[0096]检测缓存服务器上是否存储文件列表中的脚本文件;
[0097]如果缓存服务器存储有文件列表中的脚本文件,根据文件列表生成浏览器需要加载的新的脚本文件;
[0098]如果缓存服务器未存储有文件列表中的脚本文件,向web浏览器获取新的脚本文件。
[0099]在一实施例中,向web浏览器获取新的脚本文件,可包括:
[0100]向web服务器发送文件列表;
[0101]接收web服务器根据文件列表生成的新的脚本文件。
[0102]具体如何生成脚本文件的,请参考后续实施例。
[0103]至此,本公开实施例提供的上述方法,可以有效地避免在加载脚本文件的过程中产生的阻塞现象。
[0104]下面以具体实施例来说明本公开实施例提供的技术方案。
[0105]图4A是根据一示例性实施例一示出的脚本文件生成方法的流程图,图4B是根据一示例性实施例一示出的脚本文件生成方法的场景图;本实施例利用本公开实施例提供的上述方法,以通过在浏览器上加载脚本文件为例进行示例性说明,如图4A所示,包括如下步骤:
[0106]在步骤S401中,接收浏览器需要加载的脚本文件的文件列表。
[0107]步骤S401的描述可以参考上述步骤S301的描述,在此不再详述。
[0108]在步骤S402中,检测缓存服务器上是否存储文件列表中的脚本文件,如存在,执行步骤S403,如不存在,执行步骤S404。
[0109]在一实施例中,缓存服务器位于web服务器之间(也可以称为内容源服务器)和终端设备之间,缓存服务器可以根据终端设备的访问请求保存web服务器发送给终端设备的内容的副本,副本例如为html页面、图片、文件等等,当缓存服务器接收到终端设备的下一个访问请求,如果本次访问请求的URL与上一个访问请求的URL相同,则缓存服务器可以直接通过副本响应该本次访问请求,而不是向web服务器再次发送访问请求,从而可以减少响应请求的延迟时间。
[0110]在步骤S403中,如果缓存服务器存储有
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1