静态页面评论处理以及列表处理
2007-10-30 23:34
330 查看
三、评论的更新。评论的更新过程比较复杂,因为添加评论是一个交互的过程,静态页面自身根本不可能完成这一操作。解决方法是把添加评论的工作交给另一个页面(如:remark.aspx)来完成。具体过程为:在静态页面上用form给remark.aspx传递评论的内容,remark.aspx接收评论内容,添加评论,更新文章的静态页面,最后再重定向到静态页面。这样就完成了评论的添加。
form处的代码:
评论内容:
remark.aspx中相关操作的代码:
protected override void OnLoad(EventArgs e)
{
base.OnLoad (e);
int nArticleID = int.MinValue;//文章id
int nClassID = int.MinValue;//分类id
try
{
//获取传入参数
nArticleID = int.Parse(this.Request.QueryString["articleid"]);
nClassID = int.Parse(this.Request.QueryString["classid"]);
}
catch
{
}
//检查有效性
if(nArticleID < 1 || nClassID < 1)
{
this.Response.Redirect("/error.html",true);
}
string sRemarkBody = this.Request.Params["remarkbody"];
//格式:/show.aspx?id=456&cid=123
string sFrom = string.Concat("/show.aspx?id=",nArticleID,"&cid=nClassID);
//格式:/news/123/456.html
string sTo = string.Concat("/news/",nClassID,"/",nArticleID,".html");
if(sRemarkBody != null && sRemarkBody.Length > 0)
{
//添加评论
InsertRemark(nArticleID);
//生成静态页面
MakeStatic(sFrom,this.MapPath(sTo));
}
//转向静态页面
this.Response.Redirect(sTo,true);
}
这样处理的静态页面在普通浏览时与其它的静态页面完全一样,只是在发评论时对待更新评论的程序,整体的招待速度还是很快的。
第二种情况,新闻分类列表页面。此类页面在管理新闻的时候变化会非常大,即使采用后台管理也非常的不便。这就需要一些程序来帮助管理员管理这些页面。程序思路在前面已经提过,在此给出能够实际应用的程序代码。
protected override void OnLoad(EventArgs e)
{
base.OnLoad (e);
int nClassId = int.MinValue;//分类id
int nPage = int.MinValue;//页码
try
{
//获取传入参数
nClassID = int.Parse(this.Request.QueryString("classid"));
nPage = int.Parse(this.Request.QueryString("page");
}
catch
{
}
//检查有效性
if(nClassID < 1)
{
this.Response.Redirect("/error.html",true);
}
else if(nPage < 1)
{
nPage = 1;
}
//格式:/list.aspx?cid=123&page=456
string sFrom = string.Concat("/list.aspx?cid=",nClassID,"&page=",nPage);
//格式:/news/123/default456.html
string sTo = string.Concat("/news/",nClassID,"/default",((nPage==1) ? ("") : (nPage)),".html");
string sPath = this.MapPath(sTo);
if(!File.Exists(sPath))
{
//文件不存在时,创建静态页面
MakeStatic(sFrom,sTo);
}
else
{
TimeSpan ts = DateTime.Now - File.GetLastWriteTime(sPath);
if(ts.TotalDays > 1)
{
//文件已存在,但是存在时间过长,需更新
MakeStatic(sFrom,sTo);
}
}
//转向静态页面
this.Response.Redirect(sTo,true);
}
form处的代码:
评论内容:
remark.aspx中相关操作的代码:
protected override void OnLoad(EventArgs e)
{
base.OnLoad (e);
int nArticleID = int.MinValue;//文章id
int nClassID = int.MinValue;//分类id
try
{
//获取传入参数
nArticleID = int.Parse(this.Request.QueryString["articleid"]);
nClassID = int.Parse(this.Request.QueryString["classid"]);
}
catch
{
}
//检查有效性
if(nArticleID < 1 || nClassID < 1)
{
this.Response.Redirect("/error.html",true);
}
string sRemarkBody = this.Request.Params["remarkbody"];
//格式:/show.aspx?id=456&cid=123
string sFrom = string.Concat("/show.aspx?id=",nArticleID,"&cid=nClassID);
//格式:/news/123/456.html
string sTo = string.Concat("/news/",nClassID,"/",nArticleID,".html");
if(sRemarkBody != null && sRemarkBody.Length > 0)
{
//添加评论
InsertRemark(nArticleID);
//生成静态页面
MakeStatic(sFrom,this.MapPath(sTo));
}
//转向静态页面
this.Response.Redirect(sTo,true);
}
这样处理的静态页面在普通浏览时与其它的静态页面完全一样,只是在发评论时对待更新评论的程序,整体的招待速度还是很快的。
第二种情况,新闻分类列表页面。此类页面在管理新闻的时候变化会非常大,即使采用后台管理也非常的不便。这就需要一些程序来帮助管理员管理这些页面。程序思路在前面已经提过,在此给出能够实际应用的程序代码。
protected override void OnLoad(EventArgs e)
{
base.OnLoad (e);
int nClassId = int.MinValue;//分类id
int nPage = int.MinValue;//页码
try
{
//获取传入参数
nClassID = int.Parse(this.Request.QueryString("classid"));
nPage = int.Parse(this.Request.QueryString("page");
}
catch
{
}
//检查有效性
if(nClassID < 1)
{
this.Response.Redirect("/error.html",true);
}
else if(nPage < 1)
{
nPage = 1;
}
//格式:/list.aspx?cid=123&page=456
string sFrom = string.Concat("/list.aspx?cid=",nClassID,"&page=",nPage);
//格式:/news/123/default456.html
string sTo = string.Concat("/news/",nClassID,"/default",((nPage==1) ? ("") : (nPage)),".html");
string sPath = this.MapPath(sTo);
if(!File.Exists(sPath))
{
//文件不存在时,创建静态页面
MakeStatic(sFrom,sTo);
}
else
{
TimeSpan ts = DateTime.Now - File.GetLastWriteTime(sPath);
if(ts.TotalDays > 1)
{
//文件已存在,但是存在时间过长,需更新
MakeStatic(sFrom,sTo);
}
}
//转向静态页面
this.Response.Redirect(sTo,true);
}
相关文章推荐
- 详谈Apache、Nginx和tomcat的区别以及处理静态页面和动态页面的方式
- nginx 404页面处理以及pathInfo和隐藏index.php总述
- 处理【由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面】
- jsp_首先利用纯HTML写一个简单的登录页面以及后台处理页面【代码】
- ASP.NET Core应用针对静态文件请求的处理[5]: DefaultFilesMiddleware中间件如何显示默认页面
- tomcat下建虚拟目录以及在tomcat首页页面中显示根目录下的文件列表
- 页面输入框展现列表以及选中获取
- 在jquery(1.7版)以及Ext(3.4版)中,查看在页面元素(domElement)上绑定的事件处理(listener、handler)
- ssm整合之七 事务以及404页面处理
- 列表页面查询的内容来自多个表的处理方法
- nginx配置访问图片路径以及html静态页面的调取方法
- thinkphp3.2中开启静态缓存后对404页面的处理方法
- 处理【由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面】
- ASP.NET页面运行机制以及请求处理流程
- 一步步学习微软InfoPath2010和SP2010--第四章节--处理SP列表表单(5)--列表表单页面
- ASP.NET全局错误处理和异常日志记录以及IIS配置自定义错误页面
- “上传图片到服务器”之静态页面与一般处理程序
- 针对同一个静态页面,squid、varnish、trafficserver性能以及命中率的比较
- 微信小程序教学第三章(含视频):小程序中级实战教程:列表-页面逻辑处理
- 微信小程序教学第三章(含视频):小程序中级实战教程:列表-页面逻辑处理