【发布时间】:2010-03-03 00:42:30
【问题描述】:
我有一个 web 应用程序,其中 masterPage/模板包含一些静态 HTML,这些静态 HTML 永远不会更改,但会随每个请求一起发送。 (其中很多 HTML 是在用户执行某项操作后显示的隐藏元素)
我想知道是否有某种缓存方式?
我正在考虑将 HTML 放入 javascript 变量中并执行 document.write 或 jquery $(tag).html(cachedHTML);获取该内容。这样做的好处是 javascript 文件将被浏览器缓存并且 HTML 不会被传递(加快页面加载并减少带宽)。
有没有更优雅的解决方案?如果我确实走这条路,是否有一种简单的方法可以将所有 HTML 转换为 javascript 字符串,而无需通过 HTML 并对其进行格式化? (删除空格、转义双引号等...)有什么想法吗?
谢谢!
更新:这是 YSlow 的信息……这个页面看起来太大了吗? (有 3597 个 DOM 元素)
一些注意事项:js文件方面,主要有jquery、jquery-ui和my global minified js三个,其余都是asp.net或者getsatisfaction之类的生成
【问题讨论】:
-
看 YSlow,你的 HTML 几乎可以忽略不计,只有 10Kb。虽然您的预备缓存很差,但请配置您的服务器以确保 CSS 样式表和图像以及 JS 被缓存。
-
@The Feast 感谢您的建议...我正在使用 etags 为 css/images/js 设置服务器缓存,但我会看看是否有更多可以优化的方法。我可能会为图像使用 css sprites。
-
听起来是个好主意,你做对了吗?请注意,谷歌浏览器支持一种编码类型,允许在浏览器端缓存 html 块。它被称为Shared Dictionary Compression over HTTP (SDCH)。据我所知,只有 google.com 用这个编码他们的页面。
标签: javascript html web-applications caching