您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > 绝妙的asp生成静态页面
ASP中生成静态页面技术作者:汉南居士关键字:ASP技术应用!--#includefile=conn.asp--%dimstrfunctionmenu(id)setrs=server.CreateObject(adodb.recordset)sql=select*frommenuwhereid1=&id&orderbyurl,idrs.opensql,conn,1,1str=str+tableborder=''0''cellspacing=''0''cellpadding=''0''+chr(13)i=1whilenotrs.eofChildCount=conn.execute(selectcount(*)frommenuwhereid1=&rs(id))(0)ifChildCount=0thenifi=rs.recordcountthenmenutype=file1elsemenutype=fileendifmenuname=ahref=''&rs(url)&''target=''_blank''&rs(menuname)&/aonmouseup=elseifi=rs.recordcountthenmenutype=menu3listtype=list1onmouseup=onMouseUp=change1(''a&rs(id)&'',''b&rs(id)&'');elsemenutype=menu1listtype=listonmouseup=onMouseUp=change2(''a&rs(id)&'',''b&rs(id)&'');endifmenuname=rs(menuname)endifstr=str+trtdid=''b&rs(id)&''class=''&menutype&''&onmouseup&&menuname&/td/tr+chr(13)ifChildCount0thenstr=str+trid=''a&rs(id)&''style=''display:none''tdclass=''&listtype&''+chr(13)menu(rs(id))str=str+/td/tr+chr(13)endifrs.movenexti=i+1wendstr=str+/table+chr(13)rs.closesetrs=nothingendfunctionmenu(0)setfso=server.CreateObject(scripting.filesystemobject)setf1=fso.opentextfile(server.MapPath(demo.htm),2,true)f1.write(!DOCTYPEHTMLPUBLIC''-//W3C//DTDHTML4.01Transitional//EN'''')f1.write(html)f1.write(head)f1.write(metahttp-equiv=''Content-Type''content=''text/html;charset=gb2312'')f1.write(title哈哈~~~!这回速度超快了吧?/title)f1.write(metaname=''keywords''content=''asp2004,树,菜单,无限级'')f1.write(metaname=''author''content=''小灰,quxiaohui_0@163.com'')f1.write(linkhref=''style.css''rel=''stylesheet''type=''text/css'')f1.write(scriptlanguage=''javascript''src=''function.js''/script)f1.write(/head)f1.write(body)f1.write(ahref=''=''_blank''提供最新下载《ahref=''menu.asp''管理/a》br)f1.write(str)f1.write(/body)f1.write(/html)f1.closesetfso=nothingresponse.Redirect(demo.htm)%绝妙的asp生成静态页面作者:汉南居士关键字:ASP技术应用随着网站访问量的加大,每次从数据库读取都是以效率作为代价的,很多用ACCESS作数据库的更会深有体会,静态页加在搜索时,也会被优先考虑。互联网上流行的做法是将数据源代码写入数据库再从数据库读取生成静态面,这样无形间就加大了数据库。将现有的ASP页直接生成静态页,将会节省很多。下面的例子是将、index.asp?id=1/index.asp?id=2/index.asp?id=3/这三个动态页面,分别生成ndex1.htm,index2.htm,index3.htm存在根目录下面%dimstrUrl,Item_Classid,id,FileName,FilePath,Do_Url,Html_TempHtml_Temp=ULFori=1To3Html_Temp=Html_Temp&LIItem_Classid=iFileName=Index&Item_Classid&.htmFilePath=Server.MapPath(/)&\&FileNameHtml_Temp=Html_Temp&FilePath&/LIDo_Url==Do_Url&Request.ServerVariables(SERVER_NAME)&/main/index.aspDo_Url=Do_Url&?Item_Classid=&Item_ClassidstrUrl=Do_UrldimobjXmlHttpsetobjXmlHttp=Server.CreateObject(Microsoft.XMLHTTP)objXmlHttp.openGET,strUrl,falseobjXmlHttp.send()DimbinFileDatabinFileData=objXmlHttp.responseBodyDimobjAdoStreamsetobjAdoStream=Server.CreateObject(ADODB.Stream)objAdoStream.Type=1objAdoStream.Open()objAdoStream.Write(binFileData)objAdoStream.SaveToFileFilePath,2objAdoStream.Close()NextHtml_Temp=Html_Temp&UL%%Response.Write(成功生成文件:)Response.Write(BR)Response.WriteHtml_Temp%--------------另一种方法---------ASP生成静态页经过我在网上的搜索,似乎要避免fso生成静态页的可能性不大,但是,我顺便搜索了些生成静态页的教程希望大家用的着ASP生成静态网页的方法随着网站访问量的加大,每次从数据库读取都是以效率作为代价的,很多用ACCESS作数据库的更会深有体会,静态页加在搜索时,也会被优先考虑。互联网上流行的做法是将数据源代码写入数据库再从数据库读取生成静态面,这样无形间就加大了数据库。将现有的ASP页直接生成静态页,将会节省很多。下面的例子是将、index.asp?id=1/index.asp?id=2/index.asp?id=3/这三个动态页面,分别生成ndex1.htm,index2.htm,index3.htm存在根目录下面:%dimstrUrl,Item_Classid,id,FileName,FilePath,Do_Url,Html_TempHtml_Temp=ULFori=1To3Html_Temp=Html_Temp&LIItem_Classid=iFileName=Index&Item_Classid&.htmFilePath=Server.MapPath(/)&\&FileNameHtml_Temp=Html_Temp&FilePath&/LIDo_Url==Do_Url&Request.ServerVariables(SERVER_NAME)&/main/index.aspDo_Url=Do_Url&?Item_Classid=&Item_ClassidstrUrl=Do_UrldimobjXmlHttpsetobjXmlHttp=Server.CreateObject(Microsoft.XMLHTTP)objXmlHttp.openGET,strUrl,falseobjXmlHttp.send()DimbinFileDatabinFileData=objXmlHttp.responseBodyDimobjAdoStreamsetobjAdoStream=Server.CreateObject(ADODB.Stream)objAdoStream.Type=1objAdoStream.Open()objAdoStream.Write(binFileData)objAdoStream.SaveToFileFilePath,2objAdoStream.Close()NextHtml_Temp=Html_Temp&UL%%Response.Write(成功生成文件:)Response.Write(BR)Response.WriteHtml_Temp%非摸板生成静态页目前已经有很多生成html的新闻系统,但是都是用的模板,本函数实现把asp页面产生的html代码保存成为一个html文件,这样就没有必要改动原来的页面就可以轻松完成一个生成html的新闻系统了。^_^由于代码比较短,这里就不进行注释了%'当目标页面的包含文件即#include的页面里边存在response.End()的时候本程序有问题'注意:本文件一定要放在filename指向的文件的同一目录下dimhughchiu_rtcodeFunctionget_exe_code(filename)dimexecodedimtmp_strDimre,re1,content,fso,f,aspStart,aspEnddimms,mexecode=setfso=CreateObject(Scripting.FileSystemObject)setf=fso.OpenTextFile(server.mappath(filename))content=f.ReadAllf.closesetf=nothingsetfso=nothingsetre=newregexpre.ignorecase=truere.global=truere.pattern=\\%\@[^\%]+\%\content=re.replace(content,)re.global=falsere.pattern=\\!\-\-\s*\#include\s*file\s*=\s*\([^\]+)\\s*\-\-\dosetms=re.execute(content)ifms.count0thensetm=ms(0)tmp_str=get_exe_code(m.submatches(0))content=re.replace(content,tmp_str)elseexitdoendifloopsetm=nothingsetms=nothingre.pattern=^\s*=aspEnd=
本文标题:绝妙的asp生成静态页面
链接地址:https://www.777doc.com/doc-2064063 .html