如何处理生成静态页时的分页
添加一条记录后,如果要生成分类静态页的话,岂不要每一页都会重生成?如果有1000页的话,很恐怖啊! 问题点数:10、回复次数:26Top
1 楼lingbo_wx(上海小浪人)回复于 2006-12-15 11:13:23 得分 1
你真的是想搞静态,还是想给用户在url里一个友好的感觉,如果是后者用url转发Top
2 楼ldk(你的温柔其实如刀)回复于 2006-12-15 11:38:33 得分 0
是搞真的静态页Top
3 楼nutpp()回复于 2006-12-17 19:43:40 得分 1
你弄个1000页静态页有什么用?
你应该先分析一下哪些页访问量巨大,处理数据时消耗厉害,才考虑对这些页生成静态页
我怀疑你这1000页,真正访问量大的也就前几页,后面的连访问可能都没有!
还有再说了没有哪个人会一页一页看1000页的,你看看淘宝商品列表最多也就提供前100页Top
4 楼ldk(你的温柔其实如刀)回复于 2006-12-18 00:37:32 得分 0
是这样的,大部分的只是访问前面的内容。但有些情况,像下载站,下载列表,每个分类都有几十页,还有静态页的论坛,就算是生成前50页,也是很耗资源的Top
5 楼executemylove(Iceman)回复于 2006-12-18 08:27:03 得分 1
这个问题一直都没有得到很好的解决!
期待高人现身!Top
6 楼JerryLZQ(Jerry)回复于 2006-12-18 13:25:00 得分 1
如果生成XML,读取XML的速度应该会比读数据库快很多。我只是设想,估计实现起来不难。望高人不吝赐教。Top
7 楼cantops(翡翠梦境里的熊猫人)回复于 2006-12-21 18:57:04 得分 1
反向分页
所谓反向分页就是把页码反转
本来的数顺序页码为 1234567
这样最旧的纪录是在最后页的,
如果把他反回来7654321的话,最旧的纪录始终在第一页
最新的就是页码最大的, 这样只要生成最大页码的数据就好了。
个人意见。具体没有实施过,你可以考虑一下Top
8 楼saveglobe(人上了三十怎么感觉一天天老了?)回复于 2006-12-21 19:03:03 得分 1
无论什么办法,如果你要连分类也生成静态的话,只有每次更新都生成一次
因为涉及到最后一页的分页问题,不可能有很好的解决办法,除非,你每个页面上只用上一页和下一页来分页,否则就没办法Top
9 楼ldk(你的温柔其实如刀)回复于 2006-12-21 19:05:13 得分 0
按照楼上的方法生成的话,最大页有可能只有一条或二条记录,用户经常浏览的就是最大页,这样岂不是难看极了?Top
10 楼ldk(你的温柔其实如刀)回复于 2006-12-21 19:21:09 得分 0
大家看看http://www.discuz.net/的论坛,每个版块的主题列表都是静态的,不知道是怎么处理的...Top
11 楼ldk(你的温柔其实如刀)回复于 2007-02-03 14:15:01 得分 0
没人解决?Top
12 楼soft_fair(Baal)回复于 2007-02-03 16:24:40 得分 1
discuz 不是有源代码么?拿来看看啊Top
13 楼yjmyzz(我就是我)回复于 2007-02-03 16:36:46 得分 1
关注Top
14 楼ypj042096()回复于 2007-02-05 17:02:50 得分 1
35526520现广纳贤才,是ASP.NET交流群,热烈欢迎各热爱C#学习的同志加入Top
15 楼flyingfz(戴眼镜的野人)回复于 2007-02-05 17:12:38 得分 1
MARKTop
16 楼babay2008()回复于 2007-02-05 17:17:05 得分 0
关注Top
17 楼junoon(肥羊)回复于 2007-02-05 17:21:13 得分 0
这样太夸张了。。。。现在的服务器都对这种操作有限制的。。。。Top
18 楼ldk(你的温柔其实如刀)回复于 2007-02-06 14:14:38 得分 0
那些生成静态页的论坛是怎么做的呢?我找不到asp.net的论坛,discuz 的代码我看不懂Top
19 楼songsu(松鼠)回复于 2007-02-15 20:06:36 得分 0
也可以不用重新生成,只需要在每一个需要进行分页的静态页面获取进行分页时需要的重要数据即可,总数据行数,总页数,当前页数.
To:ldk(你的温柔其实如刀)
Discuz 不是静态页面,他是伪静态URL,实际上跟.NET 里面的 UrlWriter 类似.实际上他是动态的.
To:cantops(翡翠梦境里的熊猫人)
你的主意非常不错,我以前就是用这种思路来实现静态分页的,重要的数据是使用AJAX来获取的,不过在具体的测试过程中发现一些错误,后来就不使用纯静态分页了.需要解决的问题是页脚的问题,如1,2,3,4,5,6,7,8,9 页,我在实现的过程中是动态计算页脚的,所以显得稍微复杂一些.如果完全静态的写入HTML文本的话,可能不太好,因为有时我们可能会删除一些数据,这样分页就不准确了.
我最近采用的方法是将每一页的数据存在TXT文件中,读取的时侯直接从TXT文件中读取,这样速度比从数据库中读取要快,由于XML文件的共享问题没有解决好,所以我没有采用XML文件来存储数据,TXT是最简单的,而且他的多线程共享问题解决的非常好.当然,以后可以根据情况再做修改.Top
20 楼ztwz(-_-b(偶要像海绵一样的狂吸水水!))回复于 2007-02-15 21:27:13 得分 0
mark
Top
21 楼jxf654()回复于 2007-02-20 18:51:04 得分 0
upTop
22 楼xie_yanke(谢烟客)回复于 2007-02-24 06:19:06 得分 0
自动生页的静态页与其所在的页数是一一对应的.你可以将需要分页的静态页面,再生成一个单独的目录页数据文件(直接写成javascript数组).或XML目录页.将URL,与页数进行一一对应.然后写javascript至页面即可.
另一个办法是.多页互有联系的静态页,就直接生成固定文件夹.将静态页文件名以非随机名字而是有序或一定规则生成.然后只要动态遍历此文件夹.html文件名即可解决.列如:/document/faq-1.html ....faq-120000.html
如果你认为导航在生成静态页时,直接生成会造成重新生成,那么,你可以采用以下办法:
上一页 [...] 下一页
中间的[...]可用javascript生成导航.如此,可防止浏览器禁用javascript时,导航不存在的情况.
而上一页,下一页直接生成文件名解析后减1加1即可.当超过最大最小值时,可自定义404错误页面即可.
不知道对你是否有帮助.Top
23 楼saillovemeng(扬凡)回复于 2007-02-24 10:18:09 得分 0
个人感觉做新闻时比较适合用静态页,其他要看访问量Top
24 楼ericfine(埃里克)回复于 2007-03-09 20:45:28 得分 0
URL里的.html并不一定是静态页,很可能是MAPPING过的
生成静态页也并不一定要实时生成,每天定时批量生成再加上手工生成这样比较灵活
生成静态页也并不一定就比动态页+缓存效率高.Top
25 楼leo_boy(www.morock.net)回复于 2007-03-11 13:02:11 得分 0
ldk(你的温柔其实如刀) ( ) 信誉:95 Blog 2006-12-21 19:21:09 得分: 0
大家看看http://www.discuz.net/的论坛,每个版块的主题列表都是静态的,不知道是怎么处理的...
discuz的论坛程序是伪静态, 不是真的生成文件的. 是利用服务器的rewrite实现的.
Top
26 楼hubro()回复于 2007-03-22 16:37:14 得分 0
倒序分页
http://feed.hubro.net
现在已分了1千多页Top




