性能测试:浏览器对Script下载的非并行处理再说明

发表于:2008-4-30 13:40

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:关河    来源:关河的测试生活

      我提到了“将Script放到HTML文件中尽量靠近尾部”的方法来提高用户感觉上的响应时间,有朋友对这个问题提出了疑问,因此在这里更详细的对该方法进行说明。

      首先,浏览器对于script的下载是避免并行进行的。HTTP/1.1协议中规定浏览器和同一host之间只建立最多两个连接,也就是说允许的最大并行度为2(当然,对IE和Firefox来说,你都可以通过修改浏览器的设置来扩大这个并行度)。但对于Script的下载来说,浏览器在开始下载Script之后,是不会并行的下载其他element的。不会并行下载script这一点是一个事实,但浏览器为什么要采用这种策略,以及浏览器我们提到的“将Script放到HTML文件中尽量靠近尾部”到底能起到多大的作用,需要注意哪些事项,我希望在这篇文章中进一步的进行讨论。

      为了讨论方便,我准备了一个简单的HTML文件:

<HTML>
<HEAD>
<Title>Test javascript download page</Title>
</HEAD>
<BODY>
<Script language="Javascript" src="jsdownload_j1.js"></Script>
<Script language="Javascript" src="jsdownload_j2.js"></Script>
This is a simple page to test javascript download.
</br>
<input type="button" value="Click Me" name="testButton" onclick=OnB1Click()></input>
<img src="Sunset_small.JPG">
<img src="Blue_hills_small.JPG">
</BODY>
</HTML>

      这个HTML文件include了两个javascript文件,含有两张图片。两个javascript文件内容分别如下:
jsdownload_j1.js:

function OnJ1B1Click()
{
  alert(
"A simple test");
}

jsdownload_j2.js:

function OnB1Click()
{
  OnJ1B1Click();
}

      从代码中看出,这个HTML文件很简单,带有两张图片和一个button,当button被click的时候,调用jsdownload_j2.js的OnB1Click()函数,而OnB1Click()函数是简单的调用jsdownload_j1.js文件中的OnJ1B1Click()函数。

      我们来看看用IBM Page Detailer工具获得的IE浏览器访问该页面时的页面元素下载图:

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号