巧用etag实现304提高blog静态页面侧边栏
作者:puterjam 日期:2008-07-05
PJBlog3静态化以来受到大家的关注,同时也得到了大家的不少bug返回和建议。目前大部分明显的bug已经修正了,其中分享一下 静态化后 侧边栏慢的解决呵呵。经过试验,目前的侧边栏已经得到很大的改观了。
其实侧边栏的优化思路很简单,首先,静态页面里的侧边栏并不是全静态的,它能够实现一些简单的动态效果,例如登录框的表现,评论,访问数量等等。如果侧边栏每次都去访问服务器这样的速度肯定在,高速的静态页面下表现很慢。 最好的解决办法能够让浏览器知道如何才去获取到新的数据。
我们了解HTTP协议知道,304 是浏览器向服务器咨询内容是否有更新用的。朝这个方向去考虑,我打算让侧边栏实现304效果,只有服务器有更新才获取数据,没有更新让浏览器总是到本地的缓存去获取数据,以达到速度的提升。
看看我们的ASP是如何实现304的
ASP/Visual Basic代码
- <%
- Dim id, tKey, clientEtag, serverEtag
- id = 0
- serverEtag = getEtag
- clientEtag = Request.ServerVariables("HTTP_IF_NONE_MATCH")
- Response.AddHeader "ETag", getEtag
- Response.ContentType = "application/x-javascript"
- if serverEtag = clientEtag then
- Response.Status = "304 Not Modified"
- else
- Server.Transfer "static_js_mod.asp"
- end if
- %>
服务端获取到客户端的etag后,和服务器的etag进行对比。如果相等说明客户端有本地缓存,于是返回304给客户端,否则加载侧边栏的数据。当然这个判断的消耗是非常低的,我们甚至不用访问服务器,只要访问服务器里的一个缓存的etag即可
评论: 40 | 引用: 0 | 查看次数: -
]好像现在的侧边不是所说的这么回事哦,静态页下自己新建的模块不显示,插件模块也不显示。。
sfdf
嗯,想法很好,一向是對整體頁面判斷etag,忽略了對動態js判斷。
支持pjblog3 http://www.5kela.cn
期待新版本能更好啊
发表评论
上一篇
下一篇

文章来自:
Tags: