.net怎么做到动态页面静态化
asp.net的运行机制,更倾向于用服务器缓存来解决效率问题。虽然生成静态是最彻底的解决效率问题的方式,但是代价也大,比如列表页分页的问题,新加入的数据搞不好会造成整个几十页的页面需要重新生成,就算再彻底的生成静态方案都无法很好地解决这个问题,生成静态页的代价就是丧失页面的数据关联性。微软也推崇用服务器缓存解决效率这个问题。从我实际的经验上来看,代码中合理的缓存机制对服务器的压力不会比纯静态高多少,对于asp.net程序来说,10人频繁访问与1万人频繁访问对CPU和硬盘的开销没有本质意义上的区别(除非网络带宽不够用),我做.net的项目已经很多了。最大的项目日访问IP达到百万级,PV达到千万级,放心吧,用服务器缓存去解决。这样对维护来说难度也要小很多,每次换模板调整模板只需要改代码就行,不像静态的要全部重新生成,十多万的页面生成都要几个小时。
答案补充
如果单纯是因为搜索引擎优化我可以明确地负责任地告诉你,目前的搜索引擎baidu、谷歌、雅虎、微软Live等知名品牌,对asp.net的aspx处理的权级跟html是一致的。搜索引擎并不在意后缀,在意的只是URL挂的参数?id=123&page=42这种。如果是这样,可以用urlwrite技术做伪静态,这是解决方法。如果你老板执意要生成静态的话,无论对asp还是asp.net还是php都只能用最传统的办法生成静态,那就是动态组装html字符串代码,组装完毕后保存在磁盘上
答案补充
对的,就是一楼那种
答案补充
像新浪、网易这些大站都有好些处理方式,一般地,网站首页用静态化,因为网站是全站的综合数据,如果动态访问,对数据库的关联查询消耗很大;列表页用动态的,为了保证列表页的准确性最好的选择还是动态;终端内容页用半静态、半动态,就是说将内容本身的数据写磁盘,将页面内的关联动态数据(比如新闻页面右侧的推荐内容、广告位等)用动态的,用iframe、js(ajax)、include等方法实现。这种方式是目前门户网最常用的,一般地认为这是效率跟准确度最平衡的模式。
但如果是小站、新站、垂直门户站也需要酌情进行优化。我是比较反对一概而论的,我接触情况最多的还是采用伪静态方式,这样对维护量要小很多。
实例代码:ASP.NET生成HTML静态页面实例
本博文章基本上属于原创或收集整理,都是心血结晶。
欢迎转载分享,转载请注明出处,谢谢!
本文地址:.net怎么做到动态页面静态化