当前位置: 首页 > 图文教程 > 网页制作 > HTML/XHTML教程 > ASP生成静态Html文件技术杂谈

HTML/XHTML教程
CSS 循序渐进(四)表里春秋
精通 CSS 滤镜(五)
让css使网页图片半透明
实现页面图片阴影特效
发现CSS控件的好处
用CSS缩写给你的网站加速
CSS在IE和Nascape的显示差别
利用CSS,不通过replace替换标引HTML标记
拒绝单调 让网页超链接拥有多姿多彩的下划线
对CSS类及id的规范化命名
利用css里expression来实现界面对象的批量控制
利用CSS控制打印
第一章 CSS的基本认识
第二章 CSS的应用方式
第三章 CSS的应用补充
第四章 颜色背景的CSS
第五章 文字性质的CSS
第六章 区块性质的CSS
HTML之其他标记
HTML之链接标记

HTML/XHTML教程 中的 ASP生成静态Html文件技术杂谈


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-04   浏览: 80 ::
收藏到网摘: n/a

  网页生成静态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都是使用这类方法.


  template.htm ’ //模板文件 
  <html> 
  <head> 
  <title>$title$ by aspid.cn</title> 
  </head> 
  <body> 
  $body$ 
  </body> 
  </html>TestTemplate.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 

  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 
  %>

        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.