网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

ASP开发之生成静态HTML文件的方法比较

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/01/07

ASP中,将动态页面转换生成静态Html文件有许多好处,比如生成html网页有利于被搜索引擎收录(特别是对接受动态参数的页面)。前台访问时,脱离了数据访问,减轻对数据库访问的压力,加快网页打开速度。

当然,凡事有利必有弊,生成HTML页面无形中也耗费大量的磁盘空间以存放这些静态文件,在编辑页面过程中除读写数据库外,也要读写服务器磁盘,页面样式的改动必须重新生成全部HTML文件,等等。

像很多搜索引擎,都可以提交网站的页面地址列表,动态文件的收录问题已经不算是个问题了(如google sitemap)。得失就要自己衡量把握了,但无论如何,我们还是要懂得如何操作的。这里就引用一下别人的文章说明几种常见的生成思路,供大家参考参考。

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

这是最原始的,优点是简单,缺点是页面的修改不方便,我一般用到的地方是利用它生成整站参数文件。(通常网站如标题,名称等配置保存在数据库,我将它生成config.asp保存这些变量调用,避免频繁访问数据库)

以下为引用的内容:

  1. <%   
  2. filename="test.htm"   
  3. if request("body")<>"" then   
  4. set fso = Server.CreateObject("Scripting.FileSystemObject")   
  5. set htmlwrite = fso.CreateTextFile(server.mappath(""&filename&""))   
  6. htmlwrite.write "<html><head><title>" & request.form("title") & "</title></head>"   
  7. htmlwrite.write "<body>输出Title内容: " & request.form("title") & "<br /> 
  8. 输出Body内容:" & request.form("body")& "</body></html>"   
  9. htmlwrite.close   
  10. set fout=nothing   
  11. set fso=nothing   
  12. end if   
  13. %>   
  14. <form name="form" method="post" action="">   
  15. <input name="title" value="Title" size=26>   
  16. <br>   
  17. <textarea name="body">Body</textarea>   
  18. <br>   
  19. <br>   
  20. <input type="submit" name="Submit" value="生成html">   
  21. </form>  

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

以下为引用的内容:

  1. template.htm '' //模板文件   
  2. <html>   
  3. <head>   
  4. <title>$titlecontentnbsp;by webjx.com</title>   
  5. </head>   
  6. <body>   
  7. $bodycontentnbsp;  
  8. </body>   
  9. </html> 
  10. TestTemplate.asp ''// 生成Html   
  11. <%   
  12. Dim fso,htmlwrite   
  13. Dim strTitle,strContent,strOut   
  14. ''// 创建文件系统对象   
  15. Set fso=Server.CreateObject("Scripting.FileSystemObject")   
  16. ''// 打开网页模板文件,读取模板内容   
  17. Set htmlwrite=fso.OpenTextFile(Server.MapPath("Template.htm"))   
  18. strOut=f.ReadAll   
  19. htmlwrite.close   
  20. strTitle="生成的网页标题"   
  21. strContent="生成的网页内容"   
  22. ''// 用真实内容替换模板中的标记   
  23. strOut=Replace(strOut,"$titlecontentquot;,strTitle)   
  24. strOut=Replace(strOut,"$bodycontentquot;,strContent)   
  25. ''// 创建要生成的静态页   
  26. Set htmlwrite=fso.CreateTextFile(Server.MapPath("test.htm"),true)   
  27. ''// 写入网页内容   
  28. htmlwrite.WriteLine strOut   
  29. htmlwrite.close   
  30. Response.Write "生成静态页成功!"   
  31. ''// 释放文件系统对象   
  32. set htmlwrite=Nothing   
  33. set fso=Nothing   
  34. %> 

3、第三种方法就是用XMLHTTP获取动态页生成的HTML内容,再用ADODB.Stream或者Scripting.FileSystemObject保存成html文件。找到一段XMLHTTP生成Html的代码参考一下。

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号