• 静态页面评论处理以及列表处理


    三、评论的更新。评论的更新过程比较复杂,因为添加评论是一个交互的过程,静态页面自身根本不可能完成这一操作。解决方法是把添加评论的工作交给另一个页面(如: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);

                  }

  • 相关阅读:
    一分钟明确 VS manifest 原理
    关于“鸡脚神”的看法
    Android中Context具体解释 ---- 你所不知道的Context
    解决android3.0版本号以上应用接收不到开机广播问题
    什么是流利语法Fluent Syntax
    vi 命令 使用方法
    TinyXml高速入门(一)
    reactor设计模式
    ActivityGroup+LinearLayout实现iphone风格的底部tab菜单
    使用ActivityGroup来切换Activity和Layout
  • 原文地址:https://www.cnblogs.com/yzwdli/p/943648.html
Copyright © 2020-2023  润新知