广元网站建设、网页设计、域名注册、空间租用就找广元动力网络

+网站建设专线:0816-2318288 +24小时服务热线:0816-6339181
首页       关于我们   作品展示   域名空间   项目服务   行业新闻   建站学院   SEO优化   合作伙伴   联系我们   
广元动力网络真心为您服务!承接网站建设 + 网页设计 + FLASH设计 + 网站开发 + 平面设计,专业技术人员一对一服务让建站更加专业更加放心……二十小时服务热线:0816-2318288。欢迎来电咨询…… 现在时间是
文章展示
网站建设 网站推广 一切竟掌握

简单的asp静态页面批量生成代码

发布者:广元动力网络  发布时间:2009-6-6  点击次数:2322
在做网站的时候遇上了将数十万条数据全部生成静态页面的情况,就写了这个简单的页面生成代码,通过多次http请求,将过多的记录集分割成很多小块来分别执行,以下是我整理过的代码:

模板文件中要替换的内容均以{...}括起来

为力求简洁,去掉了错误处理代码(replace中要来替换的字符串参数不能为null值,当然fso也应该做错误检查)。

<% 
’ ---------------------------------------------------------------------------------------------------------------------
’ http://www.mydongli.com
’ ----------------------------------------------------------------------------------------------------------------------
Dim start                 ’该变量为指针将要指向的记录集位置,通过参数动态获得
Dim Template       ’模板文件将以字符串读入该变量
Dim   content           ’替换后的字符串变量
Dim objConn          ’连接对象
Dim ConnStr          ’连接字符串
Dim sql                    ’查询语句
Dim cnt:cnt = 1 ’本轮循环计数器初始化

start   = request("start") ’获取本轮指针的开始位置
If IsNumeric(start) Then start = CLng(start) Else start=1
If start=0 Then start = 1 ’如果start

ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath("DataBase.mdb")
sql = "select * from table_name"

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open ConnStr

set rs = Server.CreateObject("ADODB.Recordset")
rs.open sql,objConn,1,1             ’打开数据集
rs.AbsolutePosition = start ’最关键的一步,将指针指向start,start通过参数动态获得

Template = getTemplate(Server.MapPath("template.html"))’ template.html为模板文件,通过函数getTemplate读入到字符串,模板文件中要替换的内容均以{...}括起来

While Not rs.eof And cnt<= 500 ’500是设定一次请求生成页面的循环次数,根据实际情况修改,如果太高了,记录集很多的时候会出现超时错误
       content = Replace(Template,"{filed_name_1}",rs("filed_name_1")) ’用字段值替换模板内容
       content = Replace(content,"{filed_name_2}",rs("filed_name_2")) 
       ......
       content = Replace(content,"{filed_name_n}",rs("filed_name_n")) 

       genHtml content,Server.MapPath("htmfiles/"&rs("id")&".html") ’将替换之后的Template字符串生成HTML文档,htmfiles为存储静态文件的目录,请手动建立

       cnt = cnt + 1   ’计数器加1
       start = start + 1 ’指针变量递增
rs.movenext
wend

If Not rs.eof Then ’通过刷新的方式进行下一轮请求,并将指针变量start传递到下一轮
response.write "<meta http-equiv=’refresh’ content=’0;URL=?start="&start&"’>"
Else
response.write "生成HTML文件完毕!"
End if

rs.Close()
Set rs = Nothing 
objConn.Close()
Set objConn = Nothing 

Function getTemplate(template)’读取模板的函数,返回字符串,template为文件名
Dim fso,f
set fso=CreateObject("Scripting.FileSystemObject")
set f = fso.OpenTextFile(template)
getTemplate=f.ReadAll
f.close
set f=nothing
set fso=Nothing
End Function 

Sub genHtml(content,filename)’将替换后的内容写入HTML文档,content为替换后的字符串,filename为生成的文件名
Dim fso,f
Set fso = Server.CreateObject("Scripting.FileSystemObject") 
Set f = fso.CreateTextFile(filename,true)’如果文件名重复将覆盖旧文件
f.Write content
f.Close
Set f = Nothing
set fso=Nothing
End Sub
%>
 
相关文章展示: 关键词: asp  静态页面  批量  生成代码  html  htm  fso 
Asp编码优化技巧8则 [11825]
asp生成UTF-8格式的文件 [11825]
ASP利用缓存提高数据显示效率 [11825]
Web标准实践——Google的首页 [11739]
DIV自适应高度如何来控制 [6450]
JS判断新旧密码一致 [6235]
解决网站被反复挂马的问题 [3999]
Jmail组件发送asp页表单到邮箱 [3182]
符合XHTML带关闭按钮的对联广告代码 [3096]
100个ASP错误提示 [3096]
 
联系我们
 
  咨询热线:
  0816-2318288
业务咨询QQ
业务咨询QQ
业务咨询QQ
空间域名QQ
技术支持QQ
MSN客服
推荐文章
查看更多
· Photoshop制作Windows 7风格导航
· 如何做好企业新闻的软文?
· 给网站带来流量的新式推广
· textarea 换行解决方法
· javascript如何转换特殊字符,&,代替
· 迈克尔·杰克逊去世 终年50岁
· asp怎么去掉html代码
· css去掉所有链接虚线框
· 香河开发商给个北京人的烙印【转自焦点房地产】
· FLASH实用代码大全
· 在Dreamweaver中为Flash添加透明属性的简单方法
· CSS渐变滤镜大全
   最新作品
视觉超酷摄影网站-广元网站建设
视觉超酷摄影网站
防火包/涂料/堵料生产商-广元网站建设
防火包/涂料/堵料生产商
西江游戏投资-广元网站建设
西江游戏投资
北光世纪仪器有限公司-广元网站建设
北光世纪仪器有限公司
正烁-广元网站建设
正烁
信中利投资有限公司-广元网站建设
信中利投资有限公司
柯莱柏贸易有限公司-广元网站建设
柯莱柏贸易有限公司
现代大师-广元网站建设
现代大师
|   关于我们  |   建站学院  |   域名空间  |   作品展示  |   合作伙伴  |   服务项目  |   联系我们  |  
客服热线:0816-2318288    E-MAIL:mydongli#126.com 
Copyright © 2009 广元动力网络 All rights reserved.  蜀ICP备06009925号
    
客服
客服
技术
域名