关于HTTP第一次请求和缓存的问题

浴火_凤凰 2010-03-12 11:24:09
请看以下代码:

主页面main.aspx

<%@ page language="C#" autoeventwireup="true" inherits="Default, App_Web_wubpurpf" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8" /><title></title>
<link rel="stylesheet" type="text/css" href="../css/in.css" />
<script type="text/javascript" src="../mt.js"></script>
<script type="text/javascript" src="http://www.abc.com/aa/bb/cc/mt.js"></script>
<script type="text/javascript" src="../mt.js"></script>
</head>
<body>
<iframe frameborder="0" name="if1" src="test.aspx"></iframe>
</body>
</html>

上面加载的三个JS文件是同一个JS文件。第一个和第三个重复加载。
第二个是使用绝对路径加载。
iframe页面test.aspx

<%@ page language="C#" autoeventwireup="true" inherits="Default, App_Web_wubpurpf" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8" /><title></title>
<link rel="stylesheet" type="text/css" href="../css/in.css" />
<script type="text/javascript" src="../mt.js"></script>
<script type="text/javascript" src="http://www.abc.com/aa/bb/cc/mt.js"></script>
<script type="text/javascript" src="../mt.js"></script>
</head>
<body>
</body>
</html>

iframe页面test.aspx与主页面几乎一样,只是没有iframe页面。

首先说明构造这样的页面只是要解开我心中的疑惑,这样的页面在实际中可能没有什么功能。
我的疑惑有以下几点:
1.怎样算一次完整的HTTP请求
像这样带iframe或者frameset框架集的页面,在请求时算几次HTTP请求?
2.怎样算第一次HTTP请求
3.由于iframe加载的JS文件与主页面加载的JS文件完全一样,
请问iframe加载的JS文件是算一次HTTP请求还是使用缓存呢?
因为我感觉主页面已经加载下来了。
4.对于重复加载的文件(不一定是JS文件)算是几个HTTP请求?
5.对于分别使用相对路径和绝对路径加载的同一个文件算是几个HTTP请求?
文件到了缓存以后,是只有一个文件吗,还是相对路径和绝对路径有自己的独立文件

正在做页面的优化工作,发现有重复的HTTP请求存在,所以有此一问。
大家帮帮忙!知道多少说多少啊!!!
谢谢!!!
...全文
107 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰河谷908 2010-03-12
  • 打赏
  • 举报
回复
这个可以自己编一个小应用一试便知。
icy_csdn 2010-03-12
  • 打赏
  • 举报
回复
应该是只加载一次,你在代码中写的相对路径和绝对路径是没有区别的。
不过有一点应该注意的是,
1. <script type="text/javascript" src="../mt.js"></script>
2. <script type="text/javascript" src="http://www.abc.com/aa/bb/cc/mt.js"></script>

当你访问页面时用http://www.abc.com域名,而且你访问的页面是在
http://www.abc.com/aa/bb/cc/*这个层级的时候才是,负责../mt.js与http://www.abc.com/aa/bb/cc/mt.js是不匹配的。换句话说,如果你访问这个页面的时候用IP,那就是两次了。

1. 浏览器是通过绝对访问路径来计算的;
2. js等没有明确告知缓存有时间的,都应该直接使用缓存。

25,980

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧