前段时间做了个分类信息网,开始的时候用的动态文章列表,后来在网上找源码改成了生成静态列表,每次都要生成全部列表,可数据稍多时,麻烦就来了。大家都知道,静态页有利于搜索引擎收录,但是当数据大时,如10000条数据,每页50条,就要200页,如果全部重新生成的话会浪费很多时间和资源。
怎么解决数据多时生成静态文章列表慢的问题?
后来看来了几个大的网站,有点启发,就是列表倒序排列,通常文章列表都是最新文章的列在在index,index1,旧的文章排在 index2,index3....indexN, 倒序就是新的文章放在序序号大的index里面,旧的文章就固定在序号小的index里面了,不用再重新生成,只生成有新文章的index即可方法可能比较笨,本人是菜鸟,只会点asp有高手能给个更好的办法最好具体实现.
我的站http://www.fakuai.com就是这样实现的,大家可以看看,不太成熟,正慢慢改进。
1.在数据库时增加两个字段,一个记录index编号(如index_num),另一个记录这篇文章是否已经被生成到index列表里(如:Feature,是/否)
2.每增加文章时,判断数据库里最大的index编号,比如每页50篇文章,数据库里现在最大的编号是10,增加新文章时,要统计一下是编号10的文章有多少条,如果够50条了,那么该文章的编号就是10+1=11了,不到50编号还是10
3、生成列表时,只取Feature为否的文章,并按其index编号,生成列表,当然生成这个列表时要包括和它相同编号的另外49篇文章
4、其它问题:因为目录默认页的问题,要把最大序号的indexN,名字生成为index.html,一篇文章可能要编入不同的列表,比如房子:大类是房产,小类出租房屋,这时再增加相应字
段就OK了,如index_num1.. Feature1...
缺点就是占空间多了,比如分类信息网,全国有343个地级市,信息分类共有100多个,这样如果全部生成的话就有4万个以上的目录了
(转载请注明:发快分类信息)