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

PJBlog3静态化以来受到大家的关注,同时也得到了大家的不少bug返回和建议。目前大部分明显的bug已经修正了,其中分享一下 静态化后 侧边栏慢的解决呵呵。经过试验,目前的侧边栏已经得到很大的改观了。

其实侧边栏的优化思路很简单,首先,静态页面里的侧边栏并不是全静态的,它能够实现一些简单的动态效果,例如登录框的表现,评论,访问数量等等。如果侧边栏每次都去访问服务器这样的速度肯定在,高速的静态页面下表现很慢。 最好的解决办法能够让浏览器知道如何才去获取到新的数据。

我们了解HTTP协议知道,304 是浏览器向服务器咨询内容是否有更新用的。朝这个方向去考虑,我打算让侧边栏实现304效果,只有服务器有更新才获取数据,没有更新让浏览器总是到本地的缓存去获取数据,以达到速度的提升。

看看我们的ASP是如何实现304的

ASP/Visual Basic代码
  1. <%   
  2.     Dim id, tKey, clientEtag, serverEtag   
  3.     id = 0   
  4.     serverEtag = getEtag   
  5.     clientEtag = Request.ServerVariables("HTTP_IF_NONE_MATCH")   
  6.        
  7.   
  8.     Response.AddHeader "ETag", getEtag   
  9.     Response.ContentType = "application/x-javascript"    
  10.   
  11.     if serverEtag = clientEtag then   
  12.         Response.Status = "304 Not Modified"  
  13.     else   
  14.         Server.Transfer "static_js_mod.asp"  
  15.     end if   
  16. %>  

服务端获取到客户端的etag后,和服务器的etag进行对比。如果相等说明客户端有本地缓存,于是返回304给客户端,否则加载侧边栏的数据。当然这个判断的消耗是非常低的,我们甚至不用访问服务器,只要访问服务器里的一个缓存的etag即可



上一篇: 部分老的文件链接已经被google更新
下一篇: 手机发表日记
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: 优化
相关日志:
评论: 41 | 引用: 0 | 查看次数: -
dfdfsssdd[2008-10-06 05:02 PM | | | 116.7.120.8 | del | 回复回复]
asdfasdf
slowss[2008-07-19 05:55 PM | | | 60.168.59.187 | del | 回复回复]
好像现在的侧边不是所说的这么回事哦,静态页下自己新建的模块不显示,插件模块也不显示。。
177672495[2008-07-16 01:22 AM | | | 58.248.224.184 | del | 回复回复]
还可以了。。。



http://www.ouou8.cn

偶偶吧电脑知识网
22wwsd[2008-07-16 01:16 AM | | | 58.248.224.184 | del | 回复回复]
我来看看!!支持你一下!!




个人签名:
-----------------------------
http://www.ouou8.cn/girl
s[2008-07-13 05:11 PM | | | 121.35.246.101 | del | 回复回复]
sfdf
freetor[2008-07-13 00:11 AM | | | 58.214.98.207 | del | 回复回复]
嗯,想法很好,一向是對整體頁面判斷etag,忽略了對動態js判斷。
fivecarat[2008-07-11 06:40 PM | | | 121.15.50.218 | del | 回复回复]
支持pjblog3 http://www.5kela.cn
blog[2008-07-11 12:21 AM | | | 123.14.171.67 | del | 回复回复]
期待新版本能更好啊
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱:
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 500 字 | UBB代码 开启 | [img]标签 关闭