一种非常简单的静态网页生成方法介绍
一、目前的静态页生成方法有简单的模板替换、常见的ASP+FSO等,这里给大家介绍一种更简单的方法。原理就是借助XMLHTTP对象获取目标页面的源代码,然后写入到静态网页文件中。代码如下:
Dim filename,fso,fout
filename="index.html"
Set fso=server.CreateObject("Scripting.FileSystemObject")
path=server.MapPath(filename)
Set fout=fso.CreateTextFile(path)
fout.WriteLine("<!--This page is created by program on "&now&" automatically-->")
webstr = getHTTPPage("http://url")
fout.WriteLine(webstr)
fout.close
set fout=nothing
set fso=nothing
'生成后让网页自动关闭
Response.Write("<script>")
Response.Write("function ToClose(){")
Response.Write("window.opener=null;window.close();}")
Response.Write("setTimeout(ToClose,10000);")
Response.Write("</script>")
'获取目标网页的源代码
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")
if len(Http.responseBody)<1000 then
Response.End()
end if
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
objstream.Close
set objstream = nothing
End Function
另外可以设置这段程序定时执行,先把代码写到一个ASP文件里,然后在另一网页中使用JS调用定时程序,当然还有另外一种方法,就是用windows的任务计划,这里的方法是把下面代码写入一静态页中,然后在浏览器打开此网页就可以了
function run(){
window.open('make_html.asp','_blank');}
setInterval(run,5000);
</script>
二、这里顺便说下在JavaScript中使用XMLHttpRequest对象获取网页代码的方法,在返回中文的时候会出现乱码
原因是:
1、xtmlhttp 返回的数据默认的字符编码是utf-8,如果客户端页面是gb2312或者其它编码就会产生乱码
2、post方法提交的数据默认字符编码也是utf-8,如果服务器端是gb2312或其他编码数据就会产生乱码
解决方法:
1、若客户端是gb2312编码,则在服务器指定输出流编码
Response.Charset = "GB2312"
2、服务器端和客户端都使用utf-8编码
三、还有一个常见的编码问题是URL编码解码问题,下面使用JavaScript实现asp中的UrlEncode和UrlDecode功能,这里也可以学到JavaScript如何调用VBscript的函数
Function str2asc(strstr)
str2asc = hex(asc(strstr))
End Function
Function asc2str(ascasc)
asc2str = chr(ascasc)
End Function
</script>
<script language="javascript">
function UrlEncode(str){
var ret="";
var strSpecial="!\"#$%&'()*+,/:;<=>?[]^`{|}~%";
for(var i=0;i<str.length;i++){
var chr = str.charAt(i);
var c=str2asc(chr);
if(parseInt("0x"+c) > 0x7f){
ret+="%"+c.slice(0,2)+"%"+c.slice(-2);
}else{
if(chr==" ")
ret+="+";
else if(strSpecial.indexOf(chr)!=-1)
ret+="%"+c.toString(16);
else
ret+=chr;
}
}
return ret;
}
function UrlDecode(str){
var ret="";
for(var i=0;i<str.length;i++){
var chr = str.charAt(i);
if(chr == "+"){
ret+=" ";
}else if(chr=="%"){
var asc = str.substring(i+1,i+3);
if(parseInt("0x"+asc)>0x7f){
ret+=asc2str(parseInt("0x"+asc+str.substring(i+4,i+6)));
i+=5;
}else{
ret+=asc2str(parseInt("0x"+asc));
i+=2;
}
}else{
ret+= chr;
}
}
return ret;
}
tar_str="爱情"
encode_str=UrlEncode(tar_str)
decode_str=UrlDecode(encode_str)
document.write("编码后:"+encode_str+"<br>");
document.write("解码后:"+decode_str);
</script>
一种非常简单的静态网页生成方法介绍相关推荐
- Python爬虫爬取静态网页基本方法介绍
爬取静态网页的技术 数据请求模块 一.Requests库 发送GET请求 发送POST请求 get请求和post请求两者之间的区别 处理响应 定制请求头 验证Cookie 保持会话 二.urllib库 ...
- 大一可能用到的使用HTML+CSS做成简单的静态网页
大一可能用到的使用HTML+CSS做成简单的静态网页 不知道你们大一学html和css没有,哈哈.要是老师负责还好,要是不负责就jj了,期末,期中可能就要交课程报告了,希望能帮到你.! 我就做了一个简 ...
- 织梦dedecms 静态网页生成速度很慢的解决方法
织梦dedecms 静态网页生成速度很慢的解决方法,从dedecms官网论坛找到个合适的代码: 打开 include/inc/inc_fun_SpGetArcList.php 找到: for($i=0 ...
- JNI开发笔记(六)--一种更规范的so库生成方法
一种更规范的JNI工程写法 引 前言 1. MainActivity中的两个重要的语句 2. 建立Util类来替代MainActivity 3. 在MainActivity中验证JNI工程并生成so库 ...
- 快递取件码生成软件_一种分布式的取件码生成方法技术
[技术实现步骤摘要] 本专利技术涉及样品柜取件码生成 ,特别涉及一种分布式的取件码生成方法. 技术介绍 在快递柜的领域中,快递员进行快件派送的时候,通常会遇到收件人无法立刻来取件的情况,这样就需要快递 ...
- ps一种超级简单的闪图制作方法
下面介绍一种超级简单的闪图制作方法 效果图 我们先把要用到的素材准备好 我在百 度搜索了一张 [高光溶图] 星星素材 打开PS后 按照之前教的 先把要PS的图片打开,接着再打开星星素材[2张都要打 ...
- html优化网站的方法,利用HTML优化加快网页速度方法介绍
减少web页面下载时间的关键就是设法减小文件大小.当多个页面共用一些成分内容时,就可以考虑将这些公用部分单独分离出来.比如:我们可以将多个HTML页面都用到的脚本程序编写成独立存在的.js文件,然后再 ...
- python爬虫如何从一个页面进入另一个页面-Python爬虫 (一):爬取一个简单的静态网页...
版本:python3.7 平台:windows10 工具 :pycharm 断断续续学习了py3爬虫2周左右的时间,发现自己学习的过于零散化,所以想通过这个专栏系统的整理下自己所学过的知识.如有错误, ...
- python 简单网页_Python爬虫 (一):爬取一个简单的静态网页
版本:python3.7 平台:windows10 工具 :pycharm 断断续续学习了py3爬虫2周左右的时间,发现自己学习的过于零散化,所以想通过这个专栏系统的整理下自己所学过的知识.如有错误, ...
最新文章
- 机器学习竞争其实是一场数据上的竞争
- sqlplus column命令用法
- python的with用法(参考)
- Impala与Hive的比较
- Java基础:多线程
- python哪些类型可以作为迭代器_详解Python迭代和迭代器
- macd java 源代码_MACD交易系统原理、用法及源代码
- 搭建MyBatis操作数据库
- linux内存free低,Linux上的内存使用情况与`free`不匹配
- c# 弹性和瞬态故障处理库Polly 学习
- 转:设置Eclipse中的tab键为4个空格的完整方法
- zabbix3 mysql_mysql分表-zabbix3.x
- 查看nginx版本_2:快速搭建Nginx
- 这个Wi-Fi安全漏洞偷跑了24年,可能危及全球所有设备!
- div模拟textarea在ios下不兼容的问题解决
- 区块链到底是个什么鬼?一幅漫画让你秒懂!
- CODEBLOCKS 汉化配置
- 对数log、lg、ln
- 计算机桌面上任务栏在哪里,电脑桌面上的任务栏不见了怎么办
- 425 Failed to establish connection解决方案
热门文章
- java堆内存_java堆内存详解
- oracle视图可以带日期变量么,创建视图时日期字段如何只都天
- Node.js webpack 加载器
- python threading.lock
- win与Linux的防火墙配置
- LIST函数JAVA特点_Java 集合系列 07 List总结(LinkedList, ArrayList等使用场景和性能分析)...
- 什么是好的虚拟化项目交付(转)
- vCenter Events
- 关于“想哭”病毒,我也来两句。--转载
- 升级至 vCenter Server 6.5 的最佳实践 (2147686)