csdn实时生成静态页是如何实现的.公司经理非要我实现此功能.
本人水平有限,不知道其原理是什么.
特向程序友请教.

解决方案 »

  1.   

    原理就是IO操作.  把响应流写进文本文件里,存为 XXX.html
      

  2.   

    仔细研究一下csdn的生成机制,不要灌水.
      

  3.   

    CSDN的静态生成页是XML的,而且后面带了一个随机数据temp=.112456
    这个考虑到几个技术
    一:生成静态页,这个方法比较多,现在最常用的是用response.replace()方法,直接潜换相关页内容,记住你要先做好模板页才行,然后是潜换模板页内容
    二:是自动生成一个随机数,这个你用随机函数就可以,random(),至于你要生成什么样的随机数据就要自己处理了,生成几位,生成多少
      

  4.   

    protected override void Render(System.Web.UI.HtmlTextWriter writer) 

    string id=Request["id"].ToString(); 
    string name="Services/ZhengceShow"+id+".htm"; 
    string newurl=""; 
    newurl=Server.MapPath("../") + name; MemoryStream ms = new MemoryStream(); 
    StreamWriter sww = new StreamWriter(ms); 
    StreamWriter swr = new StreamWriter(newurl); 
    System.Web.UI.HtmlTextWriter htmlw = new HtmlTextWriter(swr); 
    base.Render(htmlw); 
    htmlw.Flush(); 
    htmlw.Close(); 
    string strLL = System.Text.Encoding.UTF8.GetString(ms.ToArray()); 
    Response.Write(strLL); 
    Response.Redirect(Request.Url.AbsoluteUri.Replace("Services/ZhengceShow.aspx?id="+id,name), true); 

      

  5.   

    xml+xsl生成的、xml是数据xsl 是显示的样式
    <?xml version="1.0" encoding="GB2312"?>
    <?xml-stylesheet type='text/xsl' href='/expert/Xsl/2.xsl'?>
    <Topic>
    <Issue>
    <PostUserNickName>编程无涯</PostUserNickName>
    <rank>一级(初级)</rank>
    <ranknum>user1</ranknum>
    <credit>       100</credit>
    <TopicId>   5442293</TopicId>
    <TopicName>今天进CSDN验证码是88888</TopicName>
    <PostUserId>1177009</PostUserId>
    <PostUserName>LCW010</PostUserName>
    <RoomName>.NET技术 ASP.NET</RoomName>
    <ReplyNum>2</ReplyNum>
    <PostDateTime>2007-04-04 16:42:09</PostDateTime>
    <Point>8</Point>
    <ReadNum>0</ReadNum>
    <RoomId>5202</RoomId>
    <EndState>0</EndState>
    <Content>我没有88888分,就送大家8分吧!呵呵</Content>
    </Issue>
    </Topic>
      

  6.   

    我的使用xsl+xml做的,这下面的发表框子是个iframe吧然后根据temp=.1712763
    才知道是那个xml文件,然后用文件系统处理向xml加信息。
    在xml中
    <?xml-stylesheet type='text/xsl' href='/expert/Xsl/2.xsl'?>
    这个就是为什么xml文件可以看的像html文件的原因不信的话把下面这个下下来,研究一下
    http://community.csdn.net/expert/Xsl/2.xsl
      

  7.   

    studycs.com用了模板,resplace替换法生成HTML~~
      

  8.   

    CSDN使用的是XML和XSL,当然在你回复的时候是使用asp对XML进行写操作的
    XSL格式化了XML的输出,用法相当于CSS和HTML,只需要将XML的样式指定到对应的XSL即可生成你考到的样子。至于使用asp是怎样发现的,你可以查看一下现在这个网页的源码:
    你可以发现 <?xml-stylesheet type='text/xsl' href='/expert/Xsl/2.xsl'?>指定了xsl,根据相对路径,察看对应的2.xsl,你就可以发现在2.xsl中指定了增加xml的asp文件。
    自己去看看吧
      

  9.   

    通过在basePage重载OnInit方法(判断aspx对应的静态页面是否存在,来决定是生成还是重定向)和Render方法(到这里了可以确定页面是不存在的,所以把要生成的内容流存到静态页面中去,而不是直接render到客户浏览器,最后重定向)。在内容没有更新时,页面请求都会被OnInit重定向到静态页面(也可以确定是最新内容)。当有内容更新的同时,删除内容相关的所有静态页面(可动态配置),达到更新静态页面的目的。另外注意一点的是,我的实际使用中,因为不同页面定位的路径不一样,所以我写了一个BasePage,还有多个moduleBasePage,最后页面是继承的moduleBasePage,我想你也会遇到一样的问题。