将asp页面静态化为htm页面的代码

    前段时间有个asp页面执行起来很慢,访问人数又颇多,而且又不经常修改,又懒得直接做成静态的htm页面,每次都要从服务器下载来改,只好想办法把动态asp页面转化成静态化htm页面了。
    以前就曾经看到过这样的文章,不过没太在意,真正想用的时候很难找到一个合适的asp页面静态化方法,于是在网上搜索了半天终于找到比较合适的函数代码再加上自己的修改。

程序代码如下:


<%
Function GetPage(url)
'获得文件内容
dim Retrieval
Set Retrieval = CreateObject("Microsoft.XMLHTTP")
With Retrieval
  .Open "Get", url, False ', "", ""
  .Send
  GetPage = BytesToBstr(.ResponseBody)
End With
Set Retrieval = Nothing
End Function

Function BytesToBstr(body)
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 = "GB2312"
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function

on error resume next
Url="http://www.cnfgg.com"'要读取的页面地址
response.write "开始更新首页..."
wstr = GetPage(Url)

'response.write(wstr)
Set fs=Server.CreateObject("Scripting.FileSystemObject")

'if not MyFile.FolderExists(server.MapPath("/html/")) then
'MyFile.CreateFolder(server.MapPath("/html/"))'
'end if

'要存放的页面地址
dizhi=server.MapPath("index.htm")
If (fs.FileExists(dizhi)) Then
fs.DeleteFile(dizhi)
End If

Set CrFi=fs.CreateTextFile(dizhi)
Crfi.Writeline(wstr)
set CrFi=nothing
set fs=nothing
response.write "...<font color=red>更新完成!</font>"
%>


         代码算是最简单的,直接保存成一个asp文件即可,只要把URL(要转化的asp地址)和dizhi(要保存的html地址)设置好就可以了,一般这两个文件在同一个目录,才能保证图片或者css、js起作用。
      希望对那些正在寻找asp->htm的朋友有用。



[本日志由 cnfgg 于 2009-08-06 03:54 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: 函数 静态化
相关日志:
评论: 2 | 引用: 0 | 查看次数: -
回复回复小猪[2010-07-21 04:08 PM | del]
楼主  你的代码  如何使用呢   使用的步骤是什么呀
回复回复danner[2010-07-10 07:33 PM | del]
你好!

例:首页index.asp生成index.htm后,如果数据库更新了,index.asp可以显示新的内容,但再次生成不了新的内容.

是什么原因?急!

我的QQ:1293311   希望得到帮助,谢谢!
回复来自 admin 的评论 admin 于 2010-07-13 10:12 AM 回复
你是这么访问的么?  Url="http://www.cnfgg.com" 要读取的页面地址
改成Url="http://www.cnfgg.com/index.asp"试试
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.