目前本人正在做一个项目,这个项目的前台所有页面都要求输出静态页面。首页、列表页、等。现在我发现了一个很严重的问题,就是数据量一大的时候。列表页生成很慢。比如我有10W条数据。我每页显示20条。那么就有5000个页面。这只是一种排序方式。如果是N种,那么就是5000*N个页面。目前我本地测试了、生成5000个页面要将近一个小时。那数据量再大一点就很恐怖了。而且列表页最让我头痛的问题,就是你数据一更新(每一个insert delete)等。那为了保持同步,那不是要把所有的列表页都生成一次。
我试过帝国的CMS,他的生成的速度很可观,到底是用什么方式生成的?实实在在是在硬盘上写啊。为什么快这么多。
还有新浪的新闻栏目。我想知道他们到底是怎么处理的。希望有人能指点一下
一般不是全部生成的,一般都是只生成未生成静态页的
不是全部生成的?不会吧。
这么做的话我想过,我第一次生成1-10 第二次 11-20 这样页数就成了倒序的了。这还只是小问题,那如果根据点击数,和评论数,那么就不对了啊,这是列表页,不是单个的详细也呢。
@我日小菜鸟:
生成静态页并不是说全部静态,只是把比较费时的部分生成了静态页,评论数,点击数,评论等都是用ajax加载的,这些不是静态的
这个我都想过了,但是要考虑其他问题因素,第一个客户的服务器不会很大,一般是很小的。
运营商想要的结果是 搜索引擎 收录他的东西,但是要考虑服务器的问题。如果用Ajax的话。想这种网站,蜘蛛肯定会一个劲的在那里点,而却搜索引擎不止一两个啊。又不能用js写分页,这样引擎又不会收录。所有只有静态页面能够抵得住这样搞。
我想问的就是一定要生成静态页面。但是怎么能够更快
赞成你的观点是用AJAX比较好一些。
你没明白我的意思 评论那些 肯定是Ajax添加。
我是说 列表页的排序 根据 时间 点击数 和 评论数 排序啊
这样添加一个数据 不是要把列表页重新全部生成一次啊?
@我日小菜鸟:
列表一般是动态从数据库中取的,这个数据量不大,一般也就几十条数据,对性能影响不大的,新浪的列表是伪静态
伪静态吧,如果访问量稍大些可以考虑加上缓存来提高性能。
学习!
学习。
嗯,应该是伪静态吧
列表页还生成静态干什么,伪静态,加个缓存就行了。
把不经常变化的用静态页的形式展现,经常变化的用Ajax请求的方式,进行局部刷新。