生成静态页面的好处就很多,比如提高访问速度,利于搜索引擎抓取等等。
甚至可以在服务器iis瘫痪的情况下不影响网页的浏览。当然是不是有必要生成静态页面,也要具体情况具体对待,一般来说:
  页面相对多,访问量相对少用缓存比较合适
  而访问量大的时候生成静态页面对性能有很大的提升。什么时候生成静态页面,我所知的有两种情况,
  第一种是定时不断生成静态页面
  第二种,针对某个页面,第一个用户访问的时候,就生成静态页面,并实现跳转,
 以后某个用户再进入此页面的时候,就直接跳转到该静态页面不知道哪种方式好,还有大量的静态页面如何进行命名管理,目录管理,失效时间管理,用户更新数据库后怎么处理,希望有经验的大虾传授些经验生成怎样的静态页面,我所致的有以下几种情况,
     1 针对某个页面生成完整的html文件
     2 利用模板替换生成html文件
     3 类似csdn对局部数据生成xml文件
 不知道哪种模式要好,希望大虾介绍一二,顺便能介绍一下csdn的实现模式就再好不过了
  还有一个疑惑,假如用户进入了已经生成的静态页面,最下面有个数据提交框,用户输入数据后,点提交,怎么提交到数据库啊,要知道,访问的是静态页面啊,
希望和大家交流这些问题

解决方案 »

  1.   

    2 利用模板替换生成html文件
      

  2.   

    甚至可以在服务器iis瘫痪的情况下不影响网页的浏览
    ——————————————————————————————————————
    这个有点托大了。是在 asp.net 出问题而iis没有问题的时候不影响网页浏览。如果你的心灵比较脆弱,或者服务器维护人员有随便乱装软件和调整参数的习惯,担心这个不为过。一般人不用太担心。
      

  3.   

    我觉得download方法更好。因为不需要改变开发模式
      

  4.   

    你的“第二种方式”基本上是无意义的。因为访问它仍然需要访问asp.net进程。真正把网站生成为html之后,网页之间的链接也全都是不出现aspx文件的。
      

  5.   

    谢谢楼上的指点,不过我始终不明白,如何完全不访问asp.net进程,我怎么知道转向到哪个静态页面啊,查数据库?要在asp.net里面完成啊, 我看了一下csdn的实现模式,把鼠标放在某个帖子上面的时候,显示的是带asp的链接,只是点进去的时候跳转到静态页面了啊
      

  6.   

    我刚开始接触生成静态页面,目前只试过 1 针对某个页面生成完整的html文件这个方法。
    楼主说的利用模版文件来生成,这个听说过,但不会做。
    我想问下就这两种性能方面谁比较有优势呢?
    有谁能发第二种方法的代码给我吗?
    [email protected]再次谢过了。。
      

  7.   

    你可以看看那些真正转换为“静态页面”的网站的链接地址的样子。csdn 按照他们当初的说法,是因为这样可以避免由服务器进行xslt处理。你可不要把孙中山创立中华民国说成是相应“创立和谐社会”的口号。同样,那些网站都是在了解10年前的技术之后才(在至少6、7年以前)做出的选择,那时无法考虑asp.net。
      

  8.   

    你不妨用asp.net2.0写一个csdn,即使你不了解如何让缓存及时根据数据库变化而刷新的技术,即使不考虑服务器部署问题,也可以跟csdn的用户体验对比一下。csdn其实给用户的感觉相当羸弱,反应迟钝,内容结构过分单调。
      

  9.   

    就得用模板生成html,这有什么讨论的
      

  10.   

    还有一个疑惑,假如用户进入了已经生成的静态页面,最下面有个数据提交框,用户输入数据后,点提交,怎么提交到数据库啊,要知道,访问的是静态页面啊,   有哪位兄台能解释一下啊,还有使用静态页面的话,到底可不可以抛开asp.net直接在静态页面中转向,
    我的理解是不能抛开asp.net要在asp.net中判断是否已经生成过静态页面,是的话就转向,
    不知道我说得对不
      

  11.   

    LZ抛开asp.net想想吧,静态页放个表单,action指向一个asp.net页面,不就实现提交到数据库了吗,另外静态页也并非都要从动态页跳转过去,把列表页也生成静态的,所有链接都用静态的不就行了
      

  12.   

    使用HttpWebRequest请求对应的动态页,将获取的内容保存为html即可得到静态页
    这样静态页和动态页共存,默认使用静态页链接即可
      

  13.   

    感谢各位专用的解答,
      maniunet(冬灿) 所说的,我大致有些明白了,不过还有一点疑惑,初始的页面怎么得到,需要从数据库得到数据啊,我的静态页不是已经生成好了,而是第一个人访问的时候才生成的,这样还是避免不了和asp.net打交道吧
      

  14.   

    还有一个疑惑,假如用户进入了已经生成的静态页面,最下面有个数据提交框,用户输入数据后,点提交,怎么提交到数据库啊,要知道,访问的是静态页面啊,   有哪位兄台能解释一下啊,还有使用静态页面的话,到底可不可以抛开asp.net直接在静态页面中转向,
    我的理解是不能抛开asp.net要在asp.net中判断是否已经生成过静态页面,是的话就转向,
    不知道我说得对不靜態網頁中有一個<form action="">不就可以提交給其他頁面上的程式進行處理了.
    如果要加入內容,估計要加一個可以改變的比較特殊的字符(要知道加入內容的位置).
    比如<hide>aaa</hide>,如果要改變的話,用替換字符的方式進行.將<hide>aaa</hide>替換成
    bbbb<hide>aaa</hide>,就可以顯示bbbb了.
    可能<hide>的表示有問題,大概的意思是這樣的.
      

  15.   

    sp1234---------
    小顶一下 这X 说的挺有道理  值得楼主考虑
      

  16.   

    我做的话就:定时不断生成静态页面+利用模板替换生成html文件
      

  17.   

    把提交数据的哪个也面用框架来用 嵌入 到生成的html中不就可以把数据放到数据库里了吗.
      

  18.   

    来点现实的http://www.cnblogs.com/liudao/archive/2007/05/16/748155.html
      

  19.   

    study is continue ... ...
      

  20.   

    如何管理生成的页面呢,对于稍微大一点的网站,生成几万个静态页面很正常吧,都放在一起么
    定时生成静态页面如何在asp.net中实现啊, 第一个用户访问时,生成对应的静态页面,并转向之,后来的用户就直接转向到静态页面了,这种模式好不好啊,还有如何命名大量的静态页面啊直接用生成的时间么,问题是程序是怎么知道静态页面的名字并转向的啊谢谢各位的捧场,欢迎继续讨论
      

  21.   

    静态页面的新闻如果要加评论应该怎么做呢  不能用C#了吧 难道要用JS吗?还有边上那些热点啊 推荐的新闻 怎么更新的?
      

  22.   

    静态页也能嵌套iframe啊,能放aspx么,我是这么想的,呵呵
      

  23.   

    说实话asp.net静态十分的差,多数要用手工生成。要了解静态生成机制一定要了解php静态页面的生成机制。php的静态缓存的确太厉害 ,用过php做bbs都知道模板引擎。
      

  24.   

    表单的提交,还有其它的一些动态的数据可以交由Ajax完成.至于什么时候生成静态页面,按需而定吧,一般都是在新建帖子后便生成的吧.例如你发表一篇文章,在提交表单存进数据库后并同时生成一个静态页面.
      

  25.   

    生成静态Html好一点
    不过需要自己开发一套简单的模版编译器。
    能进行简单的替换和分支、遍历即可
    至于链接为aspx的问题,可以把生成的html当作cache,过期检查通过的话做个重定向。效率也比较高,肯定比动态的aspx好
      

  26.   


      XX网站发布系统的技术特点: 
       
    结构先进:采用先进的B/S结构,有效降低了系统实施和管理的难度,同时可实现网站信息的异地发布。 
     
    功能强大的二次开发平台:独创模板和组件的概念,组件可实现预定义的复杂逻辑处理。真正做到“针对具体应用,提供简单实现”。 
     
    操作简单:网页呈现和内核技术、日常发布和系统维护完全分离,使日常操作非常简单。 
     
    功能完备:提供采集、排版、发布、监控等数十多种功能模块,为网站建设提供全套解决方案。 
     
    负载能力强:经过新浪网、中新社等大型网站的长期应用,证明能够承受大信息量考验。 
     
    系统安全性高:提供严格的权限管理与多级审核签发机制,完全能够满足新闻单位严密的管理要求。集中的系统监视与日志,保证运行之安全。 
      

  27.   

    http://community.csdn.net/Expert/topic/5574/5574174.xml?temp=2.364749E-02
    大家可以看看,生成静态页面 并对静态页面分页
      

  28.   

    昨天刚学了AJAX
    你可以用AJAX实现呀 把所有的业务逻辑全部写在其他的文件中
    然后在静态页面中调用它呀!