| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1063 人关注过本帖
标题:求助一个静态分页的问题
取消只看楼主 加入收藏
w462156
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2005-11-10
收藏
 问题点数:0 回复次数:3 
求助一个静态分页的问题

前些日.本人自写了一个小型新闻发布系统.用FSO每次写入生成页面

其中新闻分页也是用FSO写的.现在问题来了.随着新闻的慢慢增加,每次的运算越来越多.服务器也更慢了.

说要是因为每次更新的时候.要重新计算新闻总条数.然后分页.如果新闻有上万条.那不是有点恐怖.

我想像新浪,QQ等这些门户网站应该不是这样生成的吧.如果每次更新.那服务器不是要死掉.

不知道这个问题.哪位高手有没有解决的好办法,请指点一下.

搜索更多相关主题的帖子: 静态 新浪 服务器 FSO 门户网站 
2005-11-18 09:26
w462156
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2005-11-10
收藏
得分:0 

不知道这里可以贴出来不.反向分页?是从数据的最后一条开始往前分吗?

我想了一下.但想不出好法子.

如果从最后一条开始分的话.那最新的纪录往往只有几条.不能满.这也是个问题.

[此贴子已经被作者于2005-11-18 11:23:58编辑过]

2005-11-18 11:11
w462156
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2005-11-10
收藏
得分:0 

<font color="#ff0000">更新信息开始......</font><br/>
<br/>
<%
On Error Resume Next
'更新新闻列表,如果不将记录集值取出来,将会发生意外错误.
Set Rs=Server.CreateObject("ADODB.Recordset")
Sql="SELECT * FROM NC_Table ORDER BY NC_id DESC"
Rs.Open Sql,Conn,1,3
Do While Not Rs.Eof
NC_id="MoreNews"
NC_Name=Rs("NC_Name")

'取得新闻列表的数据,并生成多分页页面.
Sqla="SELECT N_name,N_title,N_classes,N_time,N_id FROM N_Table ORDER BY N_ID DESC"
Set Rsa=Server.CreateObject("ADODB.Recordset")
Rsa.Open Sqla,Conn,1,3
Call createsplit(Rsa.RecordCount)

If Rs.Eof Then Exit Do
Rs.MoveNext
Loop

'写入系统日志
Call ClearRs
Dim Thing
Thing="更新所有新闻"
Call Addsystem(Session("admin"),thing)
%>

<br/>
<font color="#ff0000">更新信息结束......</font>


'分页函数
<%
function createsplit(totle)
dim dde,fcontent,fkn,kg,pn,pz,nz ' fcontent:内容
dde=1 ' dde:当前页;
pn=100 ' pn每页多少条记录;
nz=totle ' nz记录总条数;
fkn=".html" ' fkn:扩展名;
kg="&nbsp;" ' kg:空格;
fy="&nbsp;"

if nz mod pn = 0 then '计算总页数
pz = nz\pn 'pz:总页数
else
pz = nz\pn+1
end if

U=1
for i=1 to nz
If U>100 Then U=U Mod 100
Set Rsc=Conn.Execute("Select * From NC_Table Where NC_id="& Rsa("N_classes"))
ListStr=ListStr&"<tr><td align=""left"" width=""85%"">&nbsp;<a href=""../../"&Rsc("NC_id")&"/index/index_1.html"">"&Rsc("NC_Name")&"</a>&nbsp;|&nbsp;<a href=""../../"&Rsa("N_Name")&""" target=""_blank"" title=""查看新闻:"&Rsa("N_title")&""" class=""blue"">"&Left(Rsa("N_title"),25)&"</a></td><td class=""body3"" width=""15%"">"&Rsa("N_time")&"</td><!--<td width=""15%"">点击<font color=""#ff0000""><script language='javascript' src='../../ListCounters.asp?N_id="&RSa("N_id")&"'></script></font>次</td>--></tr>"
if ((i>1 and (i mod pn=0)) or (i=nz)) then
if dde>1 then
fy="<a href='index_1"& fkn &"' title='第一页'><font face=webdings>9</font></a>"& kg
fy=fy & "<a href='index_"& (dde-1) & fkn &"' title='上一页'><font face=webdings>7</font></a>"& kg
else
fy=fy & "<font face=webdings>9</font>" & kg
fy=fy & "<font face=webdings>7</font>" & kg
end if
'if dde=i then
' col="#ff0000"
'else
' col=" "
'end if

'ddes=ddes&kg&"<a href=""../../../NewsFile/"&NC_id&"/index/index_"&dde&".html""><font color="&col&">["&dde&"]</font></a>"
fy=fy&ddes&kg
if dde<pz then
fy=fy & "<a href='index_"& (dde+1) & fkn &"' title='下一页'><font face=webdings>8</font></a>"& kg
fy=fy & "<a href='index_"& pz & fkn &"' title='末一页'><font face=webdings>:</font></a>"& kg
else
fy=fy & "<font face=webdings>8</font>" & kg
fy=fy & "<font face=webdings>:</font>" & kg
end if

'fy=fy & kg & "第<font color=""#ff0000"">"&dde&"</font>页|共<font color=""#ff0000"">"&pz&"</font>页" & kg
fy="<table width=""50%"" border=""0"" cellspacing=""1"" cellpadding=""0"" bgcolor=""#cccccc""><tr bgcolor=""#ffffff""><td title=""当前页新闻数量"" width=""10%"" align=""center""><font color=""#ff0000"">"&U&"</font></td><td title=""新闻总数量"" width=""10%"" align=""center""><font color=""#ff0000"">"&nz&"</font></td><td width=""30%"" align=""center"">"&fy&"</td><td title=""当前第"&dde&"页/总共有"&pz&"页"" width=""35%"" align=""center"">第"&dde&"页/共"&pz&"页</td><td width=""15%"" align=""center""><a href=""#Top"" class=""blue"">↑TOP</a></td></tr></table>"
Liststr=liststr&"<tr><td colspan=""3"" align=""right"" height=""60"" valign=""middle"">"&fy&"</td></tr>"

'读取列表模板
Dim htmlfiles,ML_comment
htmlfiles=Server.MapPath("../MoBan/index.html")
Call Ready(htmlfiles)
ML_comment=htmlfiles

'将模板进行元素替换.
ML_comment=Replace(ML_comment,"$ML_classes$","<a href=""../../MoreNews/index/index_1.html"" class=""blue"">超男网全部资讯</a>")
ML_comment=Replace(ML_comment,"$ML_leftstr$",Lstr)
ML_comment=Replace(ML_comment,"$ML_comment$",Liststr)

'断定文件夹是否存在.并将数据写入文件.生成静态页.
Call MakeFloder("../NewsFile/"&NC_id&"/index/")
Set Fso2 = Server.CreateObject("Scripting.FileSystemObject")
Set Fout2 = Fso2.CreateTextFile(Server.MapPath("../NewsFile/"&NC_id&"/index/index_"&dde&".html"))
Fout2.WriteLine ML_comment
Fout2.close
ListStr=""
response.write "新闻总列表|第" & dde & "页生成 ../NewsFile/"&NC_id&"/index_"&dde&".html,单击<a href=../NewsFile/"&NC_id&"/index/index_"&dde&".html target=""_blank"">查看</a><br/>"
fcontent="<br/>"
dde=dde+1
end if
Rsa.MoveNext
U=U+1
next
Rsc.Close
Set Rc=Nothing
end function
%>



这是好不容易在网上找到的参考代码才写出来的一个程序.适用于生成静态分页.

[此贴子已经被作者于2005-11-18 11:29:49编辑过]

2005-11-18 11:18
w462156
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2005-11-10
收藏
得分:0 

有没有哪位做过静态分页碰到我这种情况的.


能不能贴一段代码出来看看.是反向分页的也行.

2005-11-18 14:39
快速回复:求助一个静态分页的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026556 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved