ASP生成静态Html文件技术杂谈

2016-01-29 11:44 12 1 收藏

ASP生成静态Html文件技术杂谈,ASP生成静态Html文件技术杂谈

【 tulaoshi.com - Html 】

  网页生成静态Html文件有许多好处,比如生成html网页有利于被搜索引擎收录,不仅被收录的快还收录的全。前台脱离了数据访问,减轻对数据库访问的压力,加快网页打开速度。

  1,下面这个例子直接利用FSO把html代码写入到文件中然后生成.html格式的文件

         <%
  filename="test.htm"
  if request("body")<"" then
  set fso = Server.CreateObject("Scripting.FileSystemObject")
  set htmlwrite = fso.CreateTextFile(server.mappath(""&filename&""))
  htmlwrite.write "<html<head<title" & request.form("title") & "</title</head"
  htmlwrite.write "<body输出Title内容: " & request.form("title") & "<br / 输出Body内容:" & request.form("body")& "</body</html"
  htmlwrite.close
  set fout=nothing
  set fso=nothing
  end if
  %
  <form name="form" method="post" action=""
  <input name="title" value="Title" size=26
  <br
  <textarea name="body"Body</textarea
  <br
  <br
  <input type="submit" name="Submit" value="生成html"
  </form

        2、但是按照上面的方法生成html文件非常不方便,第二种方法就是利用模板技术,将模板中特殊代码的值替换为从表单或是数据库字段中接受过来的值,完成模板功能;将最终替换过的所有模板代码生成HTML文件.这种技术采用得比较多,大部分的CMS都是使用这类方法.

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/html/)


  template.htm ’ //模板文件 
  <html 
  <head 
  <title$title$ by aspid.cn</title 
  </head 
  <body 
  $body$ 
  </body 
  </htmlTestTemplate.asp ’// 生成Html 
  <% 
  Dim fso,htmlwrite
  Dim strTitle,strContent,strOut 
  ’// 创建文件系统对象 
  Set fso=Server.CreateObject("Scripting.FileSystemObject") 
  ’// 打开网页模板文件,读取模板内容 
  Set htmlwrite=fso.OpenTextFile(Server.MapPath("Template.htm")) 
  strOut=f.ReadAll 
  htmlwrite.close 

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/html/)

  strTitle="生成的网页标题" 
  strContent="生成的网页内容" 

  ’// 用真实内容替换模板中的标记 
  strOut=Replace(strOut,"$title$",strTitle) 
  strOut=Replace(strOut,"$body$",strContent) 

  ’// 创建要生成的静态页 
  Set htmlwrite=fso.CreateTextFile(Server.MapPath("test.htm"),true) 

  ’// 写入网页内容 
  htmlwrite.WriteLine strOut 
  htmlwrite.close 

  Response.Write "生成静态页成功!" 

  ’// 释放文件系统对象 
  set htmlwrite=Nothing 
  set fso=Nothing 
  %[next]

        3、第三种方法就是用XMLHTTP获取动态页生成的HTML内容,再用ADODB.Stream或者Scripting.FileSystemObject保存成html文件。这句话是在蓝色理想上看到的,对XMLHTTP吟清还不熟悉正在找资料了解.找到一段XMLHTTP生成Html的代码参考一下.

  <%
  ’常用函数
  ’1、输入url目标网页地址,返回值getHTTPPage是目标网页的html代码
  function getHTTPPage(url)
  dim Http
  set Http=server.createobject("MSXML2.XMLHTTP")
  Http.open "GET",url,false
  Http.send()
  if Http.readystate<4 then 
  exit function
  end if
  getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")
  set http=nothing
  if err.number<0 then err.Clear 
  end function' 2、转换乱玛,直接用xmlhttp调用有中文字符的网页得到的将是乱玛,可以通过adodb.stream组件进行转换
  Function BytesToBstr(body,Cset)
  dim objstream
  set objstream = Server.CreateObject("adodb.stream")
  objstream.Type = 1
  objstream.Mode =3
  objstream.Open
  objstream.Write body
  objstream.

来源:https://www.tulaoshi.com/n/20160129/1483132.html

延伸阅读
标签: Web开发
必须注意得是,该文件必须保存为.asp为后缀。另外IIS或者其它服务器端必须设置可执行教本程序。 %@ Language=VBScript % % Responst.ContentType="text/vnd.wap.wml" %?xml version="1.0"? !DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml" wml ca...
标签: ASP
  Function ReplaceChar ( FstrSource )   dim strRet   if IsNull(FstrSource) then     FstrSource = ""   end if   strRet = Replace ( FstrSource , "&" , "&amp;" )   strRet = Replace ( strRet , "<" , "&lt;" )   strRet = Replace ( strRet , "" , "&gt;" ) ...
标签: ASP
  '共有两个页面index.htm是首页.程序比较简单,主要是用了ASP里的文件操作对象。 <!--index.htm------------------------------------------------------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" <html <head <titleUntitl...
标签: Web开发
服务器端的生成的页面数据,为了提高访问速度,往往需要生成静态的htm页面。 通常,可以使用fso生成静态的htm页。 但如果是fso被禁止或没有使用fso的权限,就需要其他的方法来解决. 利用xmldom,使用其save()方法就是一个很好的解决之道. 而且,如果数据是xml格式,使用save()比使用fso速度要快,代码的复用率也高。 ...
原理跟用java生成jsp的servlet差不多。我们可以用printStream来向html文件里输出数据。 先创建一个StringBuilder对象,通过append方法来为其添加html语句。如下面例子所示: 代码如下: StringBuilder sb = new StringBuilder(); Properties fileProperties = getProperties("file"); Properties sqlProperties = getProperties("sql"); P...

经验教程

671

收藏

66
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部