巧用etag实现304提高blog静态页面侧边栏

PuterJam 发布于2008-07-05 03:59:29 | 68次阅读 | 字体: 打印预览


photoPJBlog3静态化以来受到大家的关注,同时也得到了大家的不少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即可


本文出处 : http://www.pjhome.net/article/865.htm end

上一篇:生活之踵

下一篇:Mac Keynote Alpha移除背景的功能Flash版

现在评论本文

authnum

0 条评论