直接切入正题。
第一个问题:应用asp.net技术静态网页的生成。我寻到了两个办法:
第一个办法是首先创建一个htm格式的静态模板页,然后在模板页中定义好几个变量,在.net中读取这个模板,并将其中的变量替换掉,这样就会生成一个新的htm静态页。这个办法主要是用IO流来完成的。具体的效果暂且不谈。我试过了,是可以生成静态页面的。并且也还有人在用,但是也有人说这个办法不好。同时他们也没有能拿出更好的方案来 = =#。
第二个办法是把现在的一个aspx页面用IO数据流生成一个新的html页面,它是将aspx页面中html标签中的内容提取出来,生成一个新的html页面,原来的aspx页面还存在,没有任何影响,一旦aspx页面发生变化,html在重新生成的时候也会相应的变化,但是这个我只能做成纯手动生成的,也就是在aspx页面有更新的时候,就得手动的生成一次html页面,这虽然解决了问题,但是也比较麻烦,我查到了其实是可以用服务器自己生成的,但是一直没有时间仔细研究,只能先手动着吧。
好了,上述的是我了解的两种用asp.net生成静态页面的办法,我的问题是,我现在需要分页了,你知道的,用动态的话,gridview本身就带着分页功能的,但是对于量大的数据,它的效率就显出来了,并且比较耗内存,虽然我用存储过程试过了海量的分页,效率高了,但是并发量高的时候还是比较慢的 = =# 。我拿一个新闻系统来提问,假如现在有一千条新闻,要在网页上显示这一千条新闻标题列表,往往是需要分页的,一页显示1000条新闻标题确实不可思议。我想请教的就是如何用静态分页?我可以把那1000条标题生成一个静态页,但是我无法分成10页,每页显示100条。我想知道这个问题是不是要用到上面我说的两个办法中的一个来解决,或者还有别的更有效率的办法。我需要一些思路,更需要一个实例来看看,还望大虾们能告诉我一些解决之道。
第二个问题就是我们经常看到的新闻评论,http://blog.ifeng.com/article/3076391.html 大虾可以先看看这个网页里的评论,我就是想做这样的,给静态的页面加上新闻评论,我的思路是这样的:用<iframe>标签把评论页嵌套到相应的新闻页面中去,这样的话,每条新闻就都有一个相应的评论页面。但是添加评论在静态页面怎么实现,网上查到的资料是用JS脚本写到数据库中,然后在添加一条新的评论的时候再重新生成一下这个评论页面,我感觉这种做法也不是很合适,毕竟IO流是挺耗资源的。所以我想干脆在新闻页面中嵌套两个页面,一个是静态的显示评论的,另一个是动态的发表评论的aspx页面,但是这个办法也不是那么现实,谁知道这个评论应该对应哪个新闻呢?并且,它的评论也分页了。现在网上尽是这些静态的页面,但是我这么久了,愣是没有搞明白这个问题,还望大虾们不惜赐教!
谨祝:工作顺利!
俺的QQ:330634553
如果你的网站没发展到像博客园这级别的访问量的话,完全没有必要使用静态的方式,其实一般情况下用好Asp.Net的缓存就能达到甚至超越静态页的性能了。
而如果你需要使用静态来尽可能地提升性能的话,也有更好的方案,即XML,它会将页面合成部分移交客户端,从而大幅降低服务器端的CPU与带宽资源需求,可以参考:http://www.cnblogs.com/skyd/archive/2009/05/21/1478431.html
如果还是坚持要静态为HTML。分页方面你可以做成参数化的,而不是在单页内实现的,这样静态化之后还是多个页面。内嵌的评论页也是可以由Url参数控制指向哪篇文章的评论的。
而实际上现在的很多静态页的这两个功能都是由Ajax实现的,比如CnBeta,相对来说难度高一些。
为每页100条,就生成10个静态页面,里面的标题,你应该能控制。模板方式完全可以实现。