众所周知,用户请求一个html页比aspx页要快很多,
我们可不可以在后台把我们要发布的信息文件(aspx文件),事先全都生成静态的html页.
然后用户请求链接的就是html.首先,我想问一下上述的是否合理.
但是如何才能把aspx页发布成html页呢?(我的重点)
加载html页模版吗?
一个datagrid又是如何转变?集思广益,欢迎大家发言...

解决方案 »

  1.   

    我想是不可以的。不过可以编辑一下。只发布bin和aspx和web.config就可以了!
    这样也挺快的啊!
    如果转化成html的话。就象你所说的datagrid怎么办。还有其他的服务器控件怎么办啊?
      

  2.   

    我以前做过一个小练习的例子:
    是利用xml + xsl转换生成html页面在项目中的某个文件夹然后把路径指向该html页面...,
    你可以考虑这种方法...
      

  3.   

    楼上的兄弟们,我想出一个好法子,不知行不行的通,
    就是
        开一个Process利用IE去编译它,然后再保存到指定的目录.
    可就不知start了之后怎么保存它
      

  4.   

    其实我觉得。NET的第一次编译
    以后运行
    和HTML的速度差不多吧
    而且生HTML 对于数据管理 好象也不是很方便
      

  5.   

    生成HTML文件的目的,不仅仅是加快访问的速度,而且还有搜索引擎的优化问题。
    搜索引擎对于类似 ?a=abcdd&b=xxxx这样的URL后缀是排名靠后的,而对于.html .shtml这样的后缀是排名优先的,PR值会更高这就涉及到了网络营销的搜索优化问题了
      

  6.   

    从技术上说是没问题的,但是做起来会比较麻烦,我有这方面的资料,需要的留下EMAIL
      

  7.   

    应该是可以现实的。在每次修改添加数据后,就生成相应的HTML.
      

  8.   

    Url rewrite 可以实现html的模拟
    有助于SEO
      

  9.   

    难,浏览器遇到动态页面*.aspx交给服务器处理,服务器返回的是静态页面*.html,再执行
     
    如果你想把*.aspx直接转换为*.html,那么必须得不充当服务器的程序,好难
    其实你运行一个动态页面*.aspx,点上面的查看“源文件”命令,DataGrid等服务器控件也是最终转换为表格执行的
      

  10.   

    可以现实的。你必须在每次修改添加数据后,就生成相应的HTML.
    就像以前asp生成静态页面的方法!
      

  11.   

    可以参考这个:
    ASP.Net生成静态HTML页! 
    环境:Microsoft .NET Framework SDK v1.1 
    OS:Windows Server 2003 中文版
    ASP.Net生成静态HTML页
    在Asp中实现的生成静态页用到的FileSystemObject对象!
    在.Net中涉及此类操作的是System.IO 
    以下是程序代码 注:此代码非原创!参考别人代码
    //生成HTML页
      public static bool WriteFile(string strText,string strContent,string strAuthor) 
      {
       string path = HttpContext.Current.Server.MapPath("/news/");
       Encoding code = Encoding.GetEncoding("gb2312");
       // 读取模板文件
       string temp = HttpContext.Current.Server.MapPath("/news/text.html");
       StreamReader sr=null;
       StreamWriter sw=null;
       string str="";  
       try
       {
        sr = new StreamReader(temp, code);
        str = sr.ReadToEnd(); // 读取文件
       }
       catch(Exception exp)
       {
        HttpContext.Current.Response.Write(exp.Message);
        HttpContext.Current.Response.End();
        sr.Close();
       }
      
       
       string htmlfilename=DateTime.Now.ToString("yyyyMMddHHmmss")+".html";
       // 替换内容
       // 这时,模板文件已经读入到名称为str的变量中了
       str =str.Replace("ShowArticle",strText); //模板页中的ShowArticle
       str = str.Replace("biaoti",strText);
       str = str.Replace("content",strContent);
       str = str.Replace("author",strAuthor);
       // 写文件
       try
       {
        sw = new StreamWriter(path + htmlfilename , false, code);
        sw.Write(str);
        sw.Flush();
       }
       catch(Exception ex)
       {
        HttpContext.Current.Response.Write(ex.Message);
        HttpContext.Current.Response.End();
       }
       finally
       {
        sw.Close();
       }
       return true;此函数放在Conn.CS基类中了
    在添加新闻的代码中引用 注:工程名为Hover
     
        if(Hover.Conn.WriteFilethis.Title.Text.ToString),this.Content.Text.ToString),this.Author.Text.ToString)))
        {
         Response.Write("添加成功");
        }
        else
        {
         Response.Write("生成HTML出错!");
        }
    -------------------------------------------------------------------------
    模板页Text.html代码
    -------------------------------------------------------------------------
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
     <HEAD>
      <title>ShowArticle</title>
      
     <body> biaoti
     <br>
     content<br>
     author
     </body>
    </HTML>
      

  12.   

    先把你做的aspx传到服务器上去做模版,然后用读http url的方法把源代码读回,用io方法写到一个.html中就可以了//得到url的源码
    public string getUrltoHtml(string Url)
    {
    string str = string.Empty;

    try
    {
    WebRequest wReq = WebRequest.Create(Url);
    WebResponse wResp = wReq.GetResponse();      Stream respStream  = wResp.GetResponseStream();
    StreamReader reader = new StreamReader(respStream, code);
    str = reader.ReadToEnd(); }
    catch//(Exception ex)
    {
    //throw new Exception( "" + ex.Message );
    }
    return str;
    }//写文件
    public bool WriteFile(string str, string OutFile ) 
    { StreamWriter sw = null;
       

    string Head = string.Empty;
    // 写文件
    try
    {
    if ( str.Length > 0 )
    {
    sw = new StreamWriter(OutFile , false, code);
    sw.Write( str);
    sw.Flush();
    }
    }
    catch
    {

    }
    finally
    {
    if ( sw != null )
    sw.Close();
    }
    return true;
    }我一直用这个方法,偶网站就是用这个办法生成主要静态页面滴,内容展示在允许的情况下(或不得已)还在用动态,但用了urlRewriter
    看看 http://www.haoo.cn