比如我有个CMS,其中的大多数页面都是只增不改的,只有一台联通VPS,于是用了CDN服务来让全国的网友访问。
但是这个CMS是可以有用户登陆的,登陆以后,页面顶部就会显示当前用户的昵称。——于是页面就不能缓存了。
我现在能想到的是,在顶部那一小块儿用ajax请求一个不缓存的地址,做动态载入。(@felix021 同学提醒也可以用jsonp..)
还有一个是CDN服务器端,如果识别到sess_id,就只做反向代理到源站,不读缓存,但是好像没什么CDN服务商提供这种服务。
有别的办法么?
比如我有个CMS,其中的大多数页面都是只增不改的,只有一台联通VPS,于是用了CDN服务来让全国的网友访问。
但是这个CMS是可以有用户登陆的,登陆以后,页面顶部就会显示当前用户的昵称。——于是页面就不能缓存了。
我现在能想到的是,在顶部那一小块儿用ajax请求一个不缓存的地址,做动态载入。(@felix021 同学提醒也可以用jsonp..)
还有一个是CDN服务器端,如果识别到sess_id,就只做反向代理到源站,不读缓存,但是好像没什么CDN服务商提供这种服务。
有别的办法么?
之前做过全站静态化的匿名论坛程序,把动态部分异步加载即可
例子:http://bbs.imoe.in/
/*割 更新一下*/
修改一下, 可以通过函数回调传递数据
在缓存页面提前定义
var cb=function(json){ ...对json进行处理 }
以 .js 的形式载入另外一个域名的脚本
js内容
cb(...各种需要的动态数据,嫌麻烦可以直接拼合成html返回过来...);
这货就是json-P嘛
jQuery有封装好的$getJSON 可用
第一个问题:
ajax、json、js都可以实现,哪个更好想必不用说了。一般来说我会直接在用户登录时,直接把昵称存入cookie,直接读取cookie就可以了,涉及到会员操作的再进行认证,这样可以减少一次动态请求。
第二个问题:
header包含Set-cookie的页面CDN一般是不缓存的(也有些CDN可以设置忽略),如果不是动态页面,可以考虑不让其产生cookie
嗯 看起来用jsonp比较合适,我就回复一下 赚点积分XD