日期:2014-05-17  浏览次数:21347 次

虚拟主机如何实现asp自动比较内容后再生成生产静态页面
找了个代码可以将我的首页index.asp转成index.html,首页打开的速度提高了3倍,但是需要手动操作,我的首页index.asp内容几乎每天都会自己更新,比如顾客在网站留言了或者我自己在后台发布了新闻,但有个问题就是我时候会忘记将asp手动转成html文件,有时是没有时间,因此,我想请各位大侠帮我实现自动化,不知道行不行:
  就是每隔一定时间自动比较index.asp和index.html的内容,如果相同则不管,如果不同则转成新的index.html文件覆盖老的文件。[color=#FF0000][/color]
  我是个比菜鸟还菜的傻菜,对程序基本是一窍不通,因此摆脱各位大侠给的解决方案最好详细一点,比如将什么代码放在什么位置都讲明一下,不然我又得傻眼了。

——————————

  我用的是万网M3主机,支持以下组件:
  文件系统管理组件FSO:Scripting.FileSystemObject 
  ADO数据对象组件:Adodb.Connection2.8 
  ADO数据对象组件
  WinHttp POST组件 5.1
  Gzip 
  XML 6.0 ASPAJAXExtSetup 
  Http 组件Microsoft.XMLHTTP 
  动易组件 POWEREASY 2006sp6 
  MD5支付组件 
  Urlrewrite(伪静态)
  图片组件 ASPJPEG2.0 
  Persits.Jpeg 
  SA-FileUp SoftArtisans.
  FileUp 
  文件上传组件 ASPUPLOAD
  Persits. Upload 3.0 



————————————

我的那个执行转换代码的文件名称是:jt.asp,我将这个文件的代码贴到下面:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<% 
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="index.asp"'要读取的页面地址 
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.html") 
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>" 
%>


------解决方案--------------------
以上说的生成html 前提是必须有网页打开 才能执行
要是站长的电脑关闭了,就没法生成了

解决方法:
可以找一个软件放在服务器上,运行某个生成html的程序就可以了
------解决方案--------------------
你可以搜索 ServerXMLHTTPRequest
这样你就能得到任何asp页面最终生成的内容了,做个比较就行了。