高分问关于列表页生成静态页面的问题

shuangren 2007-06-09 02:29:52
比如一个栏目下有100篇文章,每页20篇,那么就会有

page1.htm   81-100条记录
page2.htm   61-80
page3.htm   41-60
page4.htm   21-40
page5.htm   0-20

5个这样的列表页,这时如果再加一篇文章,变成6页,

page1.htm   82-101条记录
page2.htm   62-81
page3.htm   42-61
page4.htm   22-41
page5.htm   2-21
page6.htm   0-1

这样需要重新生成所有的列表页,当记录数量少时还无所谓,如果记录很多有几千上万页,难道新增一条时需要重新生成所有的页面吗?这会非常耗资源。

然而现实中发生很多论坛、网站的静态化做的很好,他们好像解决了这个问题,但我一直想不通他们是怎么做的,希望有经验的朋友帮我指点迷津。

在网上也搜了,有两个同样问题的贴子,但都没有答案。
http://bbs.dvbbs.net/dispbbs.asp?boardid=1&id=1228807
http://www.phpx.com/happy/archiver/tid-78241.html
...全文
1424 54 打赏 收藏 转发到动态 举报
写回复
用AI写文章
54 条回复
切换为时间正序
请发表友善的回复…
发表回复
mal2029 2009-12-20
  • 打赏
  • 举报
回复
你有这个问题,表示你认认真真的研究过,但不够深入。列表静态化其实并不是看上去那样完美。从浏览者角度说,他看到的就一定是静态的,没有看到的就并不一定是静态的(也没有必要)。 但总有第一个决定查看某页的人,问题的关键就在这,真正的信息发布系统所实现的并不是单纯的静态化,而是“页面静态化规则”,将第一个被查看页面按规则生成,就这么简单,就像ASP.NET的二次编译一样,只有在需要时才生成一个静态,当然前提是你有一个完整的生成规则。 那么一个静态WEB服务器 是怎样去触发带有动态脚本执行能力的页面来按规则生成的哪? 我见意你去重新学习一下各种WEB服务器在处理请求时的方法。比如IIS的ISAPI。
wj008 2009-12-03
  • 打赏
  • 举报
回复
如果真要生成静态 我看也只有按国外的说法 分两部分处理了~

为搜索引擎服务:记录数满一页开始生成一页!~
为客户服务:用JS调用数据!

当搜索引擎进入时 可以得到页面上的数据!用户进来时得到最新数据!
lanhaigcb 2009-10-10
  • 打赏
  • 举报
回复
cattle13 2007-08-10
  • 打赏
  • 举报
回复
xml我不太熟悉
----------------------
不需要你很熟悉,找个xml列表的网站,把他的页面和xml文件保存下来,照格式生成就行了.

ps:我也不太了解xml,但下载下来的页面一看就懂,规律性很强,也很好生成.多列表页面批量生成也很简单.高级应用我也不懂,呵呵
viivii 2007-08-10
  • 打赏
  • 举报
回复
xml + xsl 最佳答案~~`请加分。
shuangren 2007-06-21
  • 打赏
  • 举报
回复
感谢大家的积极讨论,说实话,我发完此贴后,竟然忙的忘了还有这件事,今天突然想起

来赶紧打开一看,已经四十多楼了,高兴啊 ^_^ 说说我的想法。
------------------------------------------
mygia
“不要用伪静态这个名字,感觉是贬义的。”

我倒不觉得“伪静态”是贬义词,要说“伪”,它也只是用来骗搜索引擎的,对正常浏览

者没有任何影响,这一点熟悉SEO的朋友都了解。叫“伪静态”或“URL重写”都无所谓,

反正大家知道是一个意思就行了。
------------------------------------------
mosangbike说我上当了,我这几天也了解了一下,的确很多大网站的列表页都是用的伪静

态的,我的确上当了,呵呵。但我还是想使用静态页,我在这个问题上钻牛角尖了,哈哈


------------------------------------------
csharpcn说这不是技术的问题,应该是逻辑问题,我开始也这么想的,希望有经验的朋友

来指点迷津,但是看了大家这么多回复以后,好像没有一个十分完美的解决方案。
------------------------------------------
Novolee
“你就不会换个角度?把页面链接反过来”“不全,你不会从下一页里取一些过来补上一

些吗?思维要开阔点。。。”

如果这样做的话,第一页和第二页的内容有时候不一样,有时候又99%是同样,我一定会迷

糊的,哈哈。

“另外,也可以以每日一个页面生成列表。好多网站都是以这种形式的。”

这句什么意思?不太明白。如果每天一个列表页,那早上的时候列表很短,晚上的时候又

会很长。
------------------------------------------
yynice
“列表页前20页用纯静态,每次添加、删除都重新生成一次,20页后用urlrewrite重写”
“可以只生成最后一页的HTML”

嗯,不管是将列表页的前20页还是前1页生成纯静态,都是一个变通的解决思路,用户经常

访问的内容用静态页列表,不常访问的内容还是使用动态页列表。
------------------------------------------
kkjjww
“用生成xml,在客户端分页。”

xml我不太熟悉
------------------------------------------
Un iden
“你这些,我都想过的了,放弃吧。还是用URL REWRITER吧。”

我想钻一钻这个牛角尖,呵呵
------------------------------------------

大家还有啥想法,继续跟贴,我总觉得这个问题应该很简单,就像隔着层窗户纸似的。
草原可可 2007-06-21
  • 打赏
  • 举报
回复
jf
Uniden 2007-06-20
  • 打赏
  • 举报
回复
要看实际情况。分以下两种:
1. 你发出的文章没人回复的:
可以只生成最后一页的HTML,老的没人回复就不会更新,所以不用生成HTML。

2. 如你发出的文章有人回复的,有两个方法
A。 最普遍的是使用URL重写,比如URLREWRITER,但需要服务器给你安装。这个是推荐的做法,因为不用花费太多的服务器资源。很多网站都这样做的。
B。 当别人回复该文章的时候,比如该文章在第20页的第5个文章,那么回复后,这个文章应该提到第一页的第一文章。这样要做两个步骤:
1)把第20页的第5个文章的连接改为新文章的连接,否则别人点那文章只看到老的数据。
2)在第一页增加进这个新文章的新数据。
3)如要回复的文章在前3页内可以直接修改3个HTML

这个方法是不赞成的,因为在人流量大的时候会生成很多无用的HTML页和增加服务器操作负担。

你这些,我都想过的了,放弃吧。还是用URL REWRITER吧。

你给的例子里,http://www.phpx.com/happy/archiver/tid-78241.html,这个是用URLREWRITER做的,他实际就是一个ASP文件,调用了ID为78241的数据。呈现在浏览器里为HTML后缀而已,实际后台是动态的。
wxflywing 2007-06-20
  • 打赏
  • 举报
回复
为什么不可以每条纪录生成一个页面,显示的时候再把他们按照要求拼起来。
hztltgg 2007-06-20
  • 打赏
  • 举报
回复
每日一个页面是个好办法
shuangren 2007-06-20
  • 打赏
  • 举报
回复
我受不了啦!好不容易打了一大段,死活发不出来,我检查了十几遍,到底哪个词是敏感词?
我受不了啦!好不容易打了一大段,死活发不出来,我检查了十几遍,到底哪个词是敏感词?
我受不了啦!好不容易打了一大段,死活发不出来,我检查了十几遍,到底哪个词是敏感词?
我受不了啦!好不容易打了一大段,死活发不出来,我检查了十几遍,到底哪个词是敏感词?
我受不了啦!好不容易打了一大段,死活发不出来,我检查了十几遍,到底哪个词是敏感词?
我受不了啦!好不容易打了一大段,死活发不出来,我检查了十几遍,到底哪个词是敏感词?

CSDN现在咋变成这样了?为啥会有人发敏感词?以前为啥没人发敏感词?以前的人都在讨论技术,两耳不闻窗外事,现在的人都在灌水、打屁,妈的,发些乱七八糟的东西害老子发不出贴子。

CSDN现在咋变成这样了?为啥会有人发敏感词?以前为啥没人发敏感词?以前的人都在讨论技术,两耳不闻窗外事,现在的人都在灌水、打屁,妈的,发些乱七八糟的东西害老子发不出贴子。

CSDN现在咋变成这样了?为啥会有人发敏感词?以前为啥没人发敏感词?以前的人都在讨论技术,两耳不闻窗外事,现在的人都在灌水、打屁,妈的,发些乱七八糟的东西害老子发不出贴子。
shuangren 2007-06-20
  • 打赏
  • 举报
回复
感谢大家的积极讨论,说实话,我发完此贴后,竟然忙的忘了还有这件事,今天突然想起来赶紧打开一看,已经四十多楼了,高兴啊 ^_^ 说说我的想法。
------------------------------------------
“不要用伪静态这个名字,感觉是贬义的。”

我倒不觉得“伪静态”是贬义词,要说“伪”,它也只是用来骗搜索引擎的,对正常浏览者没有任何影响,这一点熟悉SEO的朋友都了解。叫“伪静态”或“URL重写”都无所谓,反正大家知道是一个意思就行了。
------------------------------------------
说我上当了,我这几天也了解了一下,的确很多大网站的列表页都是用的伪静态的,我的确上当了,呵呵。但我还是想使用静态页,我在这个问题上钻牛角尖了,哈哈。
shuangren 2007-06-20
  • 打赏
  • 举报
回复
“不要用伪静态这个名字,感觉是贬义的。”

我倒不觉得“伪静态”是贬义词,要说“伪”,它也只是用来骗搜索引擎的,对正常浏览者没有任何影响,这一点熟悉SEO的朋友都了解。叫“伪静态”或“URL重写”都无所谓,反正大家知道是一个意思就行了。
kkjjww 2007-06-20
  • 打赏
  • 举报
回复
用生成xml,在客户端分页。
fire_dreamland 2007-06-20
  • 打赏
  • 举报
回复
每日一页的话,如果当天信息量不足,则页面显示是不是有缺陷。
李睿_Lee 2007-06-19
  • 打赏
  • 举报
回复
To:hztltgg(我想我是风)

看起来不会迷糊的,明眼人一看就知道。我见过这种列表,并没有被它迷糊了。

另外,也可以以每日一个页面生成列表。好多网站都是以这种形式的。
yynice 2007-06-19
  • 打赏
  • 举报
回复
列表页前20页用纯静态,每次添加、删除都重新生成一次,20页后用urlrewrite重写
kmlxk0 2007-06-19
  • 打赏
  • 举报
回复
遇到同样的问题了....观望~
mygia 2007-06-19
  • 打赏
  • 举报
回复
我也想过这个问题。目前看到的一些都是用urlrewrite,不要用伪静态这个名字,感觉是贬义的。除了这个办法之外我觉得其他都有缺陷。
用xml page或者js的话页面的内容不在html里面,对搜索引擎非常不利,损失更大。像oblog的列表页就是用这个方式的。我觉得很不好。
任亚军 2007-06-19
  • 打赏
  • 举报
回复
反过来可以,分页的代码用一个js,每次顺带生成 js
加载更多回复(33)

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧