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

Cache static HTML pages with get variables

本文关键字:HTML 页面 静态 缓存 get 变量 使用      更新时间:2023-09-26

我有一个网站,里面有很多这样的iframe:

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

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

我必须使用iframe,因为我希望能够更新此代码(从另一台服务器)并在另一个范围内运行它。

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

但是,如果可以对页面.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 兼容性。

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

您可以从代码更新框架 URL:

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];
}