asp定时生成静态HTML的代码
<%@Language="vbscript" Codepage="65001" %> <!-- 中文显示 --><%' 思路,定义一个时间戳的变量,假设为a' 1, 没有a这个变量' 1.1 定义一个时间戳变量a' 1.2 生成index.html页面' 1.2.1 获取你想要显示的模板页面的地址' 1.2.2 结果 获取模板页面的内容' 步骤 总结,将模板页面以数据流的形式或者说一个字符串的形式赋值给一个变量' 1,通过 Microsoft.XMLHTTP发送一个请求,获取内容http.responseBody' 2,将获取的内容创建一个数据流,以utf-8的格式写入,并且返回' 1.2.3 创建一个新的页面 ,将获取的模板页面的内容写进去' ' ' 1.3 跳转index.html' 2, 有a这个变量' 2.1 间隔时间在10s之内' 直接跳转index.html' 2.2 间隔时间不在10s之内' 重复 1 步骤'判断是否要生成新的HTML , 是否存在-如果存在相差时间是否在100s
if Application("cache_asptohtml_date")="" then ' 如果 Application("cache_asptohtml_date") 变量不存在Application.Lock 'Lock 方法阻止其他用户修改 Application 对象中的变量 (用来确保同一时间只有一位用户可修改 Application 变量)。Application("cache_asptohtml_date")=now() Application.Unlock 'Unlock 方法使其他用户能够修改存储在 Application 对象中的变量 (在它被使用 Lock 方法锁定之后)。Call aspTohtml Response.Redirect("index.html") '直接跳转到index.html
end if ' 如果 Application("cache_asptohtml_date") 变量存储的时间于现在的时间相差100sif DateDiff("s", Application("cache_asptohtml_date"),Now)> 1 then '比较上次更新时间与当前时间相差多少秒 Application.Lock Application("cache_asptohtml_date")=now() Application.UnLock Call aspTohtml Response.Redirect("index.html") Else Response.Redirect("index.html")
End if '获取当前目录!
function getpath if Request.ServerVariables("SERVER_PORT")<>"80" then ' 如果当前端口不是80UserUrl = "http://"&Request.ServerVariables("SERVER_NAME")& ":" & Request.ServerVariables("SERVER_PORT")& Request.ServerVariables("URL") else UserUrl = "http://"&Request.ServerVariables("SERVER_NAME")& Request.ServerVariables("URL") end if getpath=left(UserUrl,InstrRev(UserUrl,"/")) ' 从字符串的左侧返回 找到结尾为 / 的字符第一次出现的位置InstrRev(UserUrl,"/")=下标 数目的字符。
end function sub aspTohtml '---------------------------------------------------------- '使用XMLHTTP生成静态首页的代码 'Curl 为你的想要生成的页面'----------------------------------------------------------- dim read,Curl,content Curl=getpath&"model.html" ' http://localhost:8081/model.htmlread=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 end if
End sub '在asp页面发送一个url请求,获该页面的内容
Function getHTTPPage(url) dim http set http=Server.createobject("Microsoft.XMLHTTP") http.open "GET",url,false '想url发送一个请求,和ajax类式,但是这里False表示同步http.send() if http.readystate<>4 then exit function ' 如果请求状态不为4 退出这个函数end if Response.Write http.responseBodygetHTTPPage= bytesToBSTR(http.responseBody,"UTF-8") ' 创建一个文件 -> 将http.responseBody以utf-8的格式写入set http=nothing 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 'Object.ReadText(NumChars) 指定的要读取的找度,不指定则读取全部。objstream.Close set objstream = nothing
End Function
%>
第二种方式
<%@Language="vbscript" Codepage="65001" %> <!-- 中文显示 --><%
' 思路
' 1,判断time.txt是否有
' 1.1 是
' 读取time.txt当前行(写入的时间)
'
' 1.2 否
' 创建 time.txt,写入当前时间
' 2,时间相差大于多少
' 2.1 是
' 生成indnx.html 页面,将相应的字符串写入
' 重新生成time.txt覆盖,同 1.2
'
' 2.2 否
' 提示距离更新还有多少set fs=server.createobject("scripting.filesystemobject")
file=server.mappath("time.txt")
set txt=fs.opentextfile(file,1,true) '法打开指定的文件,并返回可用来访问此文件的 TextStream 对象。
if not txt.atendofstream then ' 如果文件指针位于 TextStream 文件的末尾,AtEndOfStream 属性返回 True,否则返回 False。注意:该属性仅工作于以只读方式打开的 TextStream 对象。times=txt.ReadLine '读取当前行Else response.write "<br /><!--有没有发现time.txt 开始生成!-->" HtmlPage = "time.txt" '//生成的HTML文件名 Template = NOW() Set FSO = Server.CreateObject ("Scripting.FileSystemObject") Set FileOut = FSO.CreateTextFile(Server.MapPath (HtmlPage)) 'MapPath 方法可把指定的路径影射到服务器上相应的物理路径上。FileOut.WriteLine Template FileOut.Close Set FSO = Nothing
end If If datediff("s",times,NOW()) > 30 Then '//上次更新到现在的时间 大于 3600秒 则 更新 response.write "<br /><!--时间过了开始更新-->" code = "这里是需要生成的html代大叔大婶大所码" '//如何得到代码的方式有很多 '//用FSO生成HTML页面 HtmlPage = "index.html" '//生成的HTML文件名 Template = code Set FSO = Server.CreateObject ("Scripting.FileSystemObject") Set FileOut = FSO.CreateTextFile(Server.MapPath (HtmlPage)) FileOut.WriteLine Template FileOut.Close Set FSO = Nothing '//用FSO生成time.txt文件 HtmlPage = "time.txt" '//生成的HTML文件名 Template = NOW() Set FSO = Server.CreateObject ("Scripting.FileSystemObject") Set FileOut = FSO.CreateTextFile(Server.MapPath (HtmlPage)) FileOut.WriteLine Template FileOut.Close Set FSO = Nothing Else response.write "<br /><!-- 已经过去"&datediff("s",times,NOW())&"秒!-->"
End If
%>
asp定时生成静态HTML的代码相关推荐
- ASP.NET生成静态页面的方法
使用ASP.NET生成静态页面的方法有两种,第一种是使用C#在后台硬编码,第二种是读取模板文件,使用字符串替换的方法.第一种方法编码量大,而且维护比较困难.我重点讲解第二种方法.第二种方法的基本思路是 ...
- ASP.Net生成静态HTML页
环境:Microsoft .NET Framework SDK v1.1 OS:Windows Server 2003 中文版 ASP.Net生成静态HTML页 在Asp中实现的生成静态页用到的Fil ...
- ASP.Net生成静态HTML页!
ASP.Net生成静态HTML页! 环境:Microsoft .NET Framework SDK v1.1 OS:Windows Server 2003 中文版 ASP.Net生成静态HTML页 在 ...
- ASP.NET生成静态页面方法大全(1)
方案1: /// <summary> /// 传入URL返回网页的html代码 /// </summary> /// <param name="Url" ...
- ASP.NET生成静态页面的简单实现
1.使用场景 当页面的数据不需要经常更改时可采用静态页面方式. 2.使用静态页面的好处 (1)提高网站的访问速度 (2)减轻服务器负担 (3)利于搜索引擎抓取 3.ASP.NET生成静态页面 生成静态 ...
- ASP动态网页生成静态Html网页代码
[摘 要] 生成html网页有利于被搜索引擎收录,不仅被收录的快还收录的全.前台脱离了数据访问,减轻对数据库访问的压力,加快网页打开速度. 网页生成静态Html文件有许多好处,比如生成html网页有利 ...
- ASP.NET生成静态页面方法大全(2)
模板页Text.html代码 CODE: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > ...
- 利用ASP.NET生成静态页面
目前生成静态页面的方法大致分为两种,一种是直接访问动态页面地址,将其生成的html代码保存成静态页面.另一种是通过读取页面模板,对其中需要替换的内容进行替换的方式进行生成.其中前一种方法简单,对于生成 ...
- Asp.NET生成静态页面并分页
因为公司的产品用asp开发, 前一段时间用asp写了一个生成静态页面并分页的程序,但缘于对.net的热爱,写了这个.net下的生成静态页面并分页的程序. 主要的原理就是替换模板里的特殊字符. 1.静态 ...
- C#语言: 生成静态页面核心代码
using System; using System.Data; using System.Configuration; using System.Web; using System.Net; usi ...
最新文章
- 【组队学习】【32期】SQL编程语言
- python语言使用什么语句实现上下文管理协议_Python with语句上下文管理器两种实现方法分析...
- windows安装linux无法启动服务,Windows系统下Apache服务器无法启动的问题解决
- C++关联容器,STL关联容器
- php登录控制实验报告_一个php实现用户登录的实例代码
- python编程入门必备知识-python基础教程#菜鸟也能看懂的超简单入门必备知识
- [Tool] SourceTree初始化GitFlow遇到错误(git command not found)的解决方案
- httppost传递内容过大_中小企业会议营销成功的7要素(干货内容)
- cenos安装erlang
- 为什么人家每天睡觉是自然醒,我每天是穷醒?
- Android根据经纬度计算距离
- QT制作简易串口助手
- 两只小企鹅(Python实现)
- ipad计算机功能,ipad功能如此强大,为何不能取代电脑,网友:已经可以取代电脑了...
- 关于物联网的各种转换,16进制 二进制 10进制 效验总结
- imx6ul rtc 驱动修改
- 无线通信模块定点传输-点对点的具体传输应用
- C语言-飞机航班订票系统
- 【Grasshopper基础13】创建可在画布上自由传递的自定义类型数据(上)—— IGH_Goo接口的重要性及其实现
- 华工计算机科学与技术专业评级,华南理工高考专业分数排名,计算机分数遥遥领先,双一流专业垫底...
热门文章
- 每天CookBook之Python-047
- IOS-设置NavigationBar的背景及字体颜色
- 正则式中的实用命名组替换
- some any oracle,Oracle Any/Some运算符
- 拓端tecdat|R语言Metropolis Hastings采样和贝叶斯泊松回归Poisson模型
- confluence统计_【漏洞预警】confluence远程代码执行漏洞(CVE-2019-3396)
- (3) numpy数组保留小数位数
- java jdk 9 64位下载地址_jdk9.0官方下载|jdk9 64位下载官方正式版 1.9 - 系统天堂
- hibernate教程笔记1
- Ubuntu下mysql跟换datadir,数据库存放路径,支持更改单个库的存放路径