发表评论
这些天我也在考虑生成静态页面,请教个问题,在不考虑服务器内存的情况下,生成HTML与CACHE之间怎么取舍,我想来想去都觉得我们自己生成HTML的这些工作,CACHE都可以为我们做到了,那还要生成HTML干什么,当然WEB重启CACHE丢失并不在考虑之中,我有些迷惑,还请楼主赐教。
我的网站就是生成静态页面的,不过时利用模板生成的。
这种生成方式不知道会不会有想分页时的问题。
@Superstone
其实用cache也是挺好的,我原来做网站,对于一些主要的页面,也是用cache来缓存,cache的响应速度和htm页面差不对。
我写的这个生成静态页面的方法和项目无关,你只需要在web.config中进行相应的配置,就可是生成指定页的静态页面或重定向到其他页面。
@HeroBeast
如果你想分页的话,就不要生成静态页了,这样做没有多大意义。
楼主你写的这个怎么用啊.
这个没有看明白啊.
是不是少点东西啊.
能不能再指点下.
谢谢.
#9楼[
楼主]2008-02-19 10:41 |
谢谢你的指点.
我慢慢的琢磨吧.
但是这个链接好像已经被删除了.
不过,还是要谢谢你.
你很热心.
#11楼[
楼主]2008-02-19 15:56 |
不错,但既然是静态页面,用户访问的是.html为后缀的页面,怎么跑到HttpModule里去, 再说如果访问html跑到HttpModule上去,这与访问动态页面有什么区别,也就是说用户实际访问的还是动态页面,不明白,请指教
#14楼[
楼主]2008-04-17 20:31 |
--引用--------------------------------------------------
cqs263: 不错,但既然是静态页面,用户访问的是.html为后缀的页面,怎么跑到HttpModule里去, 再说如果访问html跑到HttpModule上去,这与访问动态页面有什么区别,也就是说用户实际访问的还是动态页面,不明白,请指教
--------------------------------------------------------
第一 用户访问的不是静态页面,而是在访问动态页面的时候,重定向到与之对应的静态页面。
第二 不能直接访问静态页面,这牵涉到我们依据一定的条件动态生成静态页面。
第三 你看到的页面的后缀虽然是.aspx,但是经过url重定向后,我们访问的真正页面是静态页面。
再次回访,楼主是不是忽视了个东西,也就是生成文件的独占问题,如果有很多人同时写入这个文件,应该怎么处理,谢谢
用了你的生成方法,的确给我带来了很多方便,不过也存在一个问题,不知楼主是否也遇过,就是当某个页面已经生成,下次再来覆盖生成时,就会在文件内容底部出现一多除的代码,我网站的用户有6w到8w,不知是不是因为用户访问冲突而产生的,但我已经用了楼主的文件独占生成方法.出现代码如下:
<!--底部结束-->
</body>
</html>js" type="text/javascript"></script>
<!--底部结束-->
</body>
</html></div>
<div class="beian">京ICP备05020954号</div>
</div>
<script language="javascript" src="/js/stat.js" type="text/javascript"></script>
<!--底部结束-->
</body>
</html>
本来内容到<!--底部结束-->
</body>
</html> 就已经结束
但却多出了如果代码
js" type="text/javascript"></script>
<!--底部结束-->
</body>
</html></div>
<div class="beian">京ICP备05020954号</div>
</div>
<script language="javascript" src="/js/stat.js" type="text/javascript"></script>
<!--底部结束-->
</body>
</html>
#19楼[
楼主]2008-07-17 11:36 |
@cqs263
我已经更新了源代码,新的代码改的地方很多,请重新下载吧,如果您遇到的问题还没有解决,那就加我的msn吧,wangqing490@hotmail.com
改用线程池的确是个好办法,但生成页面时改用WebRequest 来获取网页源码,效果可能没有原来的ResponseFilter好,因为用WebRequest+RewriterUtils.RewriteUrl是不是等于打开当前页面两次,再说WebRequest.Create(url) 会不会再次来到CreateHtml(object obj)
#21楼[
楼主]2008-07-18 09:18 |
@cqs263
现在提供的源代码,其设计思路和原来有了很大的不同。
1,如果静态页面不存在,一个aspx页面会被访问两次,我们请求的,系统请求的(用于生成静态页面)。
2,如果静态页面存在,一个aspx页面会被访问一次,我们请求的会被重定向到静态页面,如果静态页面失效,系统请求aspx页面生成静态页面。
3,WebRequest.Create(url)不会再次来到CreateHtml(object obj),第一次请求的时候,我在请求的路径上加了一个表示。用以判断是系统请求的。
我在源代码中有注释,如果您还有什么不清楚的地方,请和我联系
wangqing490@hotmail.com
最近在搞页面静态化,才看到这个博文,思路太好了,设计也很棒,我都没想到在url重写这块来做。