新闻建站cms系统、政府cms系统定制开发

广州网站建设公司-阅速公司

asp.net新闻发布系统、报纸数字报系统方案
/
http://www.ysneo.com/
广州网站建设公司
您当前位置:首页>ASP.NET MVC

ASP.NET MVC

asp快速生成静态页面一个方法(不用模板)

发布时间:2013/6/14 14:10:19  作者:  阅读:1316  

广告:阿里云采购优惠专区

判断是否真正静态页:javascript:alert(document.lastModified) (地址栏输入)
生成真正静态页:
<%
dim haodomain
haodomain="http://127.0.0.1"
function getHTTPPage(url)
dim http
On Error Resume Next
set http=server.createobject("MSXML2.ServerXMLHTTP")
'------------------------------------------------------------
lresolveTimeout = 20000 ' 解析DNS名字的超时时间,20秒
lconnectTimeout = 20000 ' 建立Winsock连接的超时时间,20秒
lsendTimeout = 20000 ' 发送数据的超时时间,20秒
lreceiveTimeout = 30000 ' 接收response的超时时间,30秒
http.setTimeouts lresolveTimeout,lconnectTimeout,lsendTimeout,lreceiveTimeout
'可用这句替代 http.setTimeouts(20000,20000,20000,20000)
http.open "POST",url,false 'url为绝对路径
'http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
'http.setRequestHeader "CONTENT-TYPE","text/html"
'http.setRequestHeader "Charset", "gb2312"
http.send()
if Http.readystate<>4 then
response.write "失败"
response.end
exit function
end if
if http.status <> 200 then
response.write "采集网页失败!"
response.end
end if
'以下为测试信息------------------------------------
'response.write http.statusText
'response.contenttype = "text/html"
'Response.Write Http.responseBody
'response.end
'Response.Write http.responsexml.xml 'responseStream 'responsetext'responsexml
'完-------------------------------

getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")
set http=nothing
if err.number<>0 then err.Clear
end function
Function BytesToBstr(body,Cset)
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
'老的函数,没用
'Function GetBody(url)
'on error resume next
'Set Retrieval = CreateObject("Microsoft.XMLHTTP")
'Retrieval.Open "post", url, False, "",""
'Retrieval.Send
'GetBody =Retrieval.responsebody
'Set Retrieval = Nothing
'End Function
'老的函数,没用
dim body1
dim urlhao
dim body2
dim usl1
dim filename
dim body3
url1=http://www.cha600.com/
filename="index.asp"
filename2="index.htm"
targetfile=server.mappath("/make/index.htm") '此处为物理路径
body2=getHTTPPage(url1)
body3="<IFRAME border=0 name=autoupdate marginWidth=0 marginHeight=0 src="/"autoupdate.asp?hao=1"" frameBorder=no width=100% scrolling=no height=1></IFRAME>"& vbcrlf
body1=body2'&body3
response.write "<br>"&"<br>"
response.write url1&"<br>"
response.write targetfile&"<br>"
response.write body3&"<br>"
'生成
Set oFileSys = Server.CreateObject("Scripting.FileSystemObject")
if ofilesys.fileexists(targetfile)=true then
ofilesys.deletefile targetfile
end if
Set outfile=oFileSys.CreateTextFile(targetfile)
outfile.WriteLine body1
outfile.close
Set outfile=nothing
set oFileSys=nothing
response.Write("首页生成完毕!")
response.write left(body1,12)
server.transfer ("../index.htm") '此处不能为绝对路径,也不能为物理路径,只能为相对网站路径
%>
注意:
1.此方法好处不用模板,在使用时要注意源文件需要使用绝对路径(httP://****),生成目标文件用物理路径。
2.注意源文件与目标文件需要在不同的虚拟文件夹内,也就是尽量不要在一个文件夹内,否则导致IIS挂起(假死现象),需要重起IIS.
3.MSXML4.0组件。
4."http.open "POST",url,false 'url为绝对路径" 此句中的"post"一定要为大写,否则返回错误.一定一定.
5."server.transfer ("../index.htm") "此处路径一定要为相对路径.
6.此段程序用"MSXML2.ServerXMLHTTP",而不用"MSXML2.XMLHTTP",是让"http.setTimeouts"属性能使用, 可防止源网页不存在导致无限期等待的问题。

广告:阿里云新人采购专场

相关文章
asp快速生成静态页面一个方法(不用模板)
cms新闻系统购买咨询
扫描关注 广州阅速软件科技有限公司
扫描关注 广州阅速科技