2011-04-18 71 views
0

嗨: 在我的应用程序中,我必须使用IFrame。css和js重复下载问题

例如,Default.aspx的:

..... 
<body> 
    <iframe src="01.aspx" .../> 
    <iframe src="02.aspx" .../> 
    <iframe src="03.aspx" .../> 
    ......... 
</body> 

的01/02/03.aspx使用一些相同的CSS和JS,例如:

01.aspx的头:

<script src="main.js" ... /> 

在02.aspx'head:

<script src="main.js" ... /> 

瓦我运行Default.aspx,我发现main.js根据萤火虫下载了三次,我想知道为什么?

UPDATE:

Default.aspx的:

<html> 
    <head><title>default page</title></head> 
    <body> 
     <iframe src="common/01.aspx" scroll="auto" /> 
     <iframe src="common/02.aspx" scroll="auto" /> 
     <iframe src="common/03.aspx" scroll="auto" /> 
    </body> 
</html> 

01.aspx:

<html> 
    <head><title></title> 
     <script type="javascript" src="js/main.js"/> 
    </head> 
    <body> 
     <table id="01"> 
     ...... 
     </table> 
    </body> 
</html> 

02.aspx:

<html> 
    <head><title></title> 
     <script type="javascript" src="js/main.js"/> 
    </head> 
    <body> 
     <table id="02"> 
     ...... 
     </table> 
    </body> 
</html> 

的main.css

table{ 
width:100%; 
border-collapse:collapse; 
border:1px solid blue; 
} 
.... 
+0

您还可以添加main.js的源代码吗? – dmarucco 2011-04-18 15:28:05

+0

嗨,我更新了所有的iframe也共享的css文件。 – hguser 2011-04-19 11:29:46

回答

3

很简单 - 每个iframe必须单独负荷main.js(和其他资产)。

Firebug显示所有iframe内部的所有HTTP请求。

+0

那么,如果我别无选择,只能使用iframe,那么无法提高下载时间的速度? – hguser 2011-04-18 11:47:41

+0

您可以创建一个全局js文件并将其包含在default.aspx中。 – dmarucco 2011-04-18 11:47:56

+0

我已经尝试在Default.aspx的头部包含main.js,但它似乎不能在iframe中工作。 – hguser 2011-04-18 11:51:46

1

iframe会单独的页面,这就像你有1页,CLIK在一个链接,去第2页,然后点击一个链接,进入到第3页,如果第1页,第2页和第3页使用main.js它被加载3次。

如果不想3倍的负载不使用iframe的