使用get变量缓存静态HTML页面

时间:2013-10-21 20:03:00

标签: javascript html caching iframe

我的网站上有很多像这样的iframe:

<iframes src="expamle.com\page.html?var=blabla&id=42" scrolling="no"></iframe>

我必须为每个iFrame更改var=blabla&id=42。这些参数用于iframe的javascript中。有没有办法为所有变量缓存(给浏览器提示)page.html(静态)一次?

我必须使用iframe,因为我希望能够更新此代码(来自其他服务器)&amp;在另一个范围内运行它。

3 个答案:

答案 0 :(得分:1)

否 - 更改查询字符串的任何内容都代表浏览器的单独资源。

但是,如果您可以对page.html进行一些细微更改,则可能会达到此效果。如果你这样写:

<iframes src="expamle.com\page.html#var=blabla&id=42" scrolling="no"></iframe>

请注意使用#字符 - 那是关键字。

查询字符串变为“page.html”并将以此方式缓存。但是,该页面的Javascript可以访问变量document.location.hash,其中包含“var=blabla&id=42”。它将被写为单个字符串,但解析起来应该不难。有些库甚至使用该标签将半实时参数传递给iframe以兼容IE6。

答案 1 :(得分:0)

如果它只在javascript中使用但实际上只有1页服务器端不使用?但是使用#它会将它视为同一页面但是在不同的锚点上。所以如果缓存了test.com/#foo,那么test.col / #bar也是(同一页面,不同的锚点)

答案 2 :(得分:-1)

您可以从代码更新框架网址:

var fr = document.getElementsByTagName('iframe');
var sites = "1.com,2.com".split(",");

for(var x=0;x<fr.length;x++) {
     document.getElementsByTagName('iframe')[x].src="http://"+sites[x];
}