asp生成html静态文件的一些方法整理

做网站都想用到动态的信息,而动态的又慢,那么就出来了 动态生成静态的方法 了,asp生成HTML,但是发现生成的内容不是最新的,比如我生成主页,生成后我又修改了动态的主页文件,在点击生成,可生成出来的主页不是动态主页,也就是说浏览动态主页和静态主页的内容不一样,那么这里其实不是你程序的问题,是缓存在作怪,有的人就说了,加上代码禁止缓存,那么也可以,但是代码比较多点。下面学习吧介绍个方法简单的解决ASP生成HTML缓存问题。

用FSO读取文件文本框生成HTML这种方法不建议采用,可以用FSO+XMLHTTP生成,用xmlhttp来获取指定文件的内容,用FSO生成,很是方便,那么解决缓存在这个获取的时候,一般都是 绝对URL,在这个URL后面加个随机数变量。如default.asp?a="&now()&",因为这个a是当前时候,而当前时间不重复,就让程序认为不是一个文件,就不会有缓存出现,也可以保证每次生成的HTML都是最新的。

下面使用的是xmlhttp来获取动态内容,然后用FSO来生成文件。

asp生成html代码:

 代码如下 复制代码

dim read,reada,Curl,Curla,content,contenta
Function getHTTPPage(url)
dim http
set http=Server.createobject("Microsoft.XMLHTTP")
Http.open "GET",url,false
Http.send()
if Http.readystate<>4 then
exit function
end if

getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")
On Error Resume Next
if err.number<>0 then err.Clear
End function
Function BytesToBstr(body,Cset)
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 = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function

url1=Request.ServerVariables("Server_name")
Curl="http://"&url1&"/index.asp?a="&now()&""
read=getHTTPPage(Curl)
if read<>"" then
content=read
Set Fso = Server.CreateObject("Scripting.FileSystemObject")
Filen=Server.MapPath("index.html")
Set Site_Config=FSO.CreateTextFile(Filen,true, False)
Site_Config.Write content
Site_Config.Close
Set Fso = Nothing
Response.Write("已经生成主页")
end if

以上代码为asp生成主页HTML,或者单个文件HTML。

代码解释:

url1 是获取当前地址栏的域名,比如本地浏览的时候为http://127.0.0.1/那么他就是127.0.0.1

Curl是获取出来的域名加上你的动态文件地址,这里为index.asp后面加个a=now()是为了杜绝缓存设置的。

Filen是生成到为什么文件,这里是index.html,这个支持相对路径,比如生成为上一个目录的html,那么这样写="../index.html"

下次在发表用asp生成列表和内页HTML,敬请关注

例子,替换方法

如一个正常的index.asp动态页面,

新建一个文件 makeasp2html.asp

 代码如下 复制代码

<form method="post" action=""> 
    <textarea name="asp2html" style="display:none"><!--#include file="index.asp"--></textarea> 
    <input type="submit" value="生成html页"/> 
</form> 

<% 
If request.Form("asp2html")<>"" then 
    filename="index.html" 

    set fso = Server.CreateObject("Scripting.FileSystemObject") 
    set fout = fso.CreateTextFile(server.mappath(""&filename&"")) 

    fout.write request.form("asp2html") 
    fout.close 

    set fout=nothing 
    set fso=nothing 

end if 
%>

这样index.html文件就生成了,连模板都用不着,只要服务器要支持FSO,将正常情况下使用的ASP文件读取到textarea里就可以了。

时间: 2024-08-10 05:04:09

asp生成html静态文件的一些方法整理的相关文章

php 生成html静态文件类程序与实例使用方法

php教程生成html静态文件类程序与实例使用方法 class html { var $dir; //dir for the htmls(without/) var $rootdir; //root of html files(without/):html var $name; //html文件存放路径 var $dirname; //指定的文件夹名称 var $url; //获取html文件信息的来源网页地址 var $time; //html文件信息填加时的时间 var $dirtype;

ASP.Net下载大文件的实现方法

这篇文章主要介绍了ASP.Net下载大文件的实现方法,较为详细的分析了实现大文件下载的思路及具体注意事项,需要的朋友可以参考下 本文实例讲述了ASP.Net下载大文件的实现方法.分享给大家供大家参考.具体分析如下: 当我们的网站需要支持下载大文件时,如果不做控制可能会导致用户在访问下载页面时发生无响应,使得浏览器崩溃.可以参考如下代码来避免这个问题. 关于此代码的几点说明: 1. 将数据分成较小的部分,然后将其移动到输出流以供下载,从而获取这些数据. 2. 根据下载的文件类型来指定 Respon

ASP.Net下载大文件的实现方法_实用技巧

本文实例讲述了ASP.Net下载大文件的实现方法.分享给大家供大家参考.具体分析如下: 当我们的网站需要支持下载大文件时,如果不做控制可能会导致用户在访问下载页面时发生无响应,使得浏览器崩溃.可以参考如下代码来避免这个问题. 关于此代码的几点说明: 1. 将数据分成较小的部分,然后将其移动到输出流以供下载,从而获取这些数据. 2. 根据下载的文件类型来指定 Response.ContentType .(参考OSChina的这个网址可以找到大部分文件类型的对照表:http://tool.oschi

Asp.net生成htm静态文件的两种途径

asp.net|静态 //51aspx.com生成静态页演示文件,转载请保留该信息  2    public partial class _Default : System.Web.UI.Page  3    ...{  4        protected void Page_Load(object sender, EventArgs e)  5        ...{  6             7        }  8  9        //根据模板生成,保持在html文件夹中(部分

php生成静态文件的多种方法分享_php技巧

第一种:将php动态页面内容生成静态 复制代码 代码如下: ob_start();#开启服务器缓存 include_once 'Index.php'; $ctx=ob_get_contents();#获取缓存 ob_end_clean();#清空缓存 $fh=fopen("index.html","w+"); fwrite($fh,$ctx);#写入html,生成html fclose($fh); /* 1.Flush:刷新缓冲区的内容,输出. 函数格式:flush

ASP生成html静态页面

原理:通过浏览器传送变量,如 http://127.0.0.1/shengcheng.asp?id=90 代码: if SaveFile("/new/"&id&".html","http://127.0.0.1/news.asp?id="&id&"") then 中 /new"&id&".html",是你生成的文件和路径.http://127.0.0

asp生成utf-8静态html页面的函数代码

用asp生成静态utf-8编码网页的代码.用fso无法生成,只有使用Adodb.Stream才可以生成真正的UTF-8静态页 <%Dim sContent,iType,oAdossContent = ""iType = 2    '类型(1-二进制/2-文本)Set oAdos = Server.CreateObject("Adodb.Stream")With oAdos    .Type = iType    .Mode = 3    .CharSet =

FSO生成UTF-8编码文件的解决方法

昨天给aw写一个生成天气预报的xml文件的程序,考虑到通用性,于是选择utf-8编码,我也比较偏好这个编码.最先想到用FSO来写这个xml文件,后来却发现生成的xml文件不能正常显示,仅仅是因为编码的原因.用记事本打开生成的xml文件,另存为utf-8编码的xml文件即可正常显示.于是在网上搜索了一下,结果发现很多人说FSO只能写ANSI编码的文件,不能写utf-8格式的文件,并且只能读写文本文件.很多人都选择用ADODB.STREAM对象来替代FSO对象,因为STREAM类有LOADFROMF

Asp Access 创建静态文件/HTML_应用技巧

作用说明:  本代码实现从 Access 提取数据以创建 HTML 文件, 不建文件夹. 如果文件名与要创建的文件名相同, 则覆盖, 跟 SQL 的更新一样的原理. 待加功能: 删除与查找.  复制代码 代码如下: <%  '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ' subject : Asp 创建静态文件/HTML By Stabx ' ' writer : Stabx<shawl.