发信人: zhch (zhch), 信区: BBSDev
标 题: 让cgi也能被浏览器cached
发信站: 南京大学小百合站 (Sat May 25 22:29:09 2002), 站内信件
让cgi也能被浏览器cached
当使用一个静态页面(如.html文件)做主frame时, IE的F5刷新只刷新当前页面. 而如果使用
一个动态页面(如c cgi, php, asp)来做一个主frame时, IE的F5刷新会会到首页. 这显然是
很不方便的. 目前包括一些很大的知名网站都存在这个问题.
解决这个问题是很简单的, 以nju web bbs 0.9为例, 如果需要某个cgi能被浏览器cache.
只需要在BBSLIB.c里面加上:
char *Gtime(time_t t)
{
static char buf[40];
char *s;
if(!t) return "";
s=Ctime(t);
sprintf(buf, "%3.3s, %02d %3.3s %4.4s %8.8s GMT", s, atoi(s+8), s+4,
s+20, s+11);
return buf;
}
然后在cgi_head()里面加上如下代码:
#ifdef CACHED
printf("Date: %s\n", Gtime(time(0)));
printf("Last-Modified: %s\n", Gtime(file_time(CGI_PATH)));
#endif
再在这个cgi里面加上
#define CACHED
以及
#define CGI_PATH xxxx (其中xxxx为该cgi的文件路径)
即可.
--
FROM 166.111.176.221