• 静态页系列(一) 访问计数、首页静态页


            首先声明一下,这个静态页的生成是用了Eric兄的辛苦劳动成果:EFPLatform.CodeGenerator。在这里,先忠心感谢Eric兄,辛苦了!!

            静态页的生成,多种因素,有着诸多不同的实现方式。孰优孰劣,适合自己的最好,这里不必妄言。静态页生成后,又伴之而来其他的问题,如:静态页的生成,生成后增加访问计数,异步添加评论等等。关于如何生成静态页,有了Eric兄,我在这也就没有必要赘述了。

            下面谈谈生成静态页之后出来的问题:
            限于篇幅,这次先来两个小模块:1.增加访问计数  2.生成首页

            1、生成好的静态页增加访问计数:
    我的做法是建立一个增加引用计数的动态页,这个页接受参数,然后根据参数增加访问计数。在静态页里用<script src="/Module_News/Increase.aspx?id=ID编号" type="text/javascript"></script>
    调用这个页增加访问计数
    cs代码:

     1if (!this.IsPostBack)
     2        {
     3            if (Request.QueryString["id"!= null)
     4            {
     5                Module_News mnMain = new Module_News();
     6                mnMain.Module_News_FluxIncrease(Request.QueryString["id"].ToString());
     7                //Response.Redirect(string.Format(@"/Html/News/3/{0}.html", Request.QueryString["code"].ToString()));
     8            }

     9            else
    10            {
    11                Response.Write("您请求的数据不存在");
    12            }

    13        }

    注意:页面元素为空;另外还可以换成ashx文件。

            2、首页生成静态页
            关于首页,我之前是用的缓存。但限于自身的技术水平,缓存带来的效果并不理想。且不知为什么首页的个别链接还会出错。所以,决定用静态页替代缓存。这里的首页静态页我没有用模板生成,毕竟首页的东西太多,这样做太繁杂。
    这里取了个巧,重写Render:
    代码:

     1protected override void Render(HtmlTextWriter writer)
     2    {
     3        System.IO.StringWriter html = new System.IO.StringWriter();
     4        System.Web.UI.HtmlTextWriter tw = new HtmlTextWriter(html);
     5        base.Render(tw);
     6        System.IO.StreamWriter sw = new System.IO.StreamWriter(Server.MapPath("index.html"), false, System.Text.Encoding.Default);
     7        sw.Write(html.ToString());
     8        sw.Close();
     9        tw.Close();
    10        //Response.Write("页面生成成功!");
    11    }

            好了,页面生成了,问题又来了,怎么更新?是隔一段时间生成一次,还是有更新就重新生成...
    我的做法是让用户自己更新。在页里加上下面这个

    <script language="javascript" type="text/javascript">
    //请求Default.aspx,调用Render重新生成首页静态页
    document.write('<script type="text/javascript" src="/Default.aspx"><'+'/script>');
    </script>

    这样一来,用户访问一次生成好的静态页,就调用一次首页,然后重新生成静态页。

  • 相关阅读:
    JAVA_SE基础——59.权限访问修饰符
    JAVA_SE基础——58.如何用jar命令对java工程进行打包
    JAVA_SE基础——57.有了包之后类与类之间的访问使用import语句
    JAVA_SE基础——56.包的创建
    JAVA_SE基础——55.自定义异常类
    JAVA_SE基础——54.异常
    JAVA_SE基础——53.什么是异常?
    Spring整合Mybatis
    Mybatis的ResultMap结果集映射、日志、分页
    Java中的值传递机制
  • 原文地址:https://www.cnblogs.com/xpengfee/p/902542.html
Copyright © 2020-2023  润新知