一、目前的静态页生成方法有简单的模板替换、常见的ASP+FSO等,这里给大家介绍一种更简单的方法。原理就是借助XMLHTTP对象获取目标页面的源代码,然后写入到静态网页文件中。代码如下:

Code
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的任务计划,这里的方法是把下面代码写入一静态页中,然后在浏览器打开此网页就可以了

<script>
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.ContentType = "text/html" 
Response.Charset = "GB2312"

2、服务器端和客户端都使用utf-8编码

三、还有一个常见的编码问题是URL编码解码问题,下面使用JavaScript实现asp中的UrlEncode和UrlDecode功能,这里也可以学到JavaScript如何调用VBscript的函数

<script language="vbscript"> 
Function str2asc(strstr) 
   str2asc = hex(asc(strstr)) 
End Function 
Function asc2str(ascasc) 
   asc2str = chr(ascasc) 
End Function 
</script> 
Code
<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>

一种非常简单的静态网页生成方法介绍相关推荐

  1. Python爬虫爬取静态网页基本方法介绍

    爬取静态网页的技术 数据请求模块 一.Requests库 发送GET请求 发送POST请求 get请求和post请求两者之间的区别 处理响应 定制请求头 验证Cookie 保持会话 二.urllib库 ...

  2. 大一可能用到的使用HTML+CSS做成简单的静态网页

    大一可能用到的使用HTML+CSS做成简单的静态网页 不知道你们大一学html和css没有,哈哈.要是老师负责还好,要是不负责就jj了,期末,期中可能就要交课程报告了,希望能帮到你.! 我就做了一个简 ...

  3. 织梦dedecms 静态网页生成速度很慢的解决方法

    织梦dedecms 静态网页生成速度很慢的解决方法,从dedecms官网论坛找到个合适的代码: 打开 include/inc/inc_fun_SpGetArcList.php 找到: for($i=0 ...

  4. JNI开发笔记(六)--一种更规范的so库生成方法

    一种更规范的JNI工程写法 引 前言 1. MainActivity中的两个重要的语句 2. 建立Util类来替代MainActivity 3. 在MainActivity中验证JNI工程并生成so库 ...

  5. 快递取件码生成软件_一种分布式的取件码生成方法技术

    [技术实现步骤摘要] 本专利技术涉及样品柜取件码生成 ,特别涉及一种分布式的取件码生成方法. 技术介绍 在快递柜的领域中,快递员进行快件派送的时候,通常会遇到收件人无法立刻来取件的情况,这样就需要快递 ...

  6. ps一种超级简单的闪图制作方法

    下面介绍一种超级简单的闪图制作方法 效果图  我们先把要用到的素材准备好 我在百 度搜索了一张 [高光溶图] 星星素材 打开PS后 按照之前教的  先把要PS的图片打开,接着再打开星星素材[2张都要打 ...

  7. html优化网站的方法,利用HTML优化加快网页速度方法介绍

    减少web页面下载时间的关键就是设法减小文件大小.当多个页面共用一些成分内容时,就可以考虑将这些公用部分单独分离出来.比如:我们可以将多个HTML页面都用到的脚本程序编写成独立存在的.js文件,然后再 ...

  8. python爬虫如何从一个页面进入另一个页面-Python爬虫 (一):爬取一个简单的静态网页...

    版本:python3.7 平台:windows10 工具 :pycharm 断断续续学习了py3爬虫2周左右的时间,发现自己学习的过于零散化,所以想通过这个专栏系统的整理下自己所学过的知识.如有错误, ...

  9. python 简单网页_Python爬虫 (一):爬取一个简单的静态网页

    版本:python3.7 平台:windows10 工具 :pycharm 断断续续学习了py3爬虫2周左右的时间,发现自己学习的过于零散化,所以想通过这个专栏系统的整理下自己所学过的知识.如有错误, ...

最新文章

  1. 机器学习竞争其实是一场数据上的竞争
  2. sqlplus column命令用法
  3. python的with用法(参考)
  4. Impala与Hive的比较
  5. Java基础:多线程
  6. python哪些类型可以作为迭代器_详解Python迭代和迭代器
  7. macd java 源代码_MACD交易系统原理、用法及源代码
  8. 搭建MyBatis操作数据库
  9. linux内存free低,Linux上的内存使用情况与`free`不匹配
  10. c# 弹性和瞬态故障处理库Polly 学习
  11. 转:设置Eclipse中的tab键为4个空格的完整方法
  12. zabbix3 mysql_mysql分表-zabbix3.x
  13. 查看nginx版本_2:快速搭建Nginx
  14. 这个Wi-Fi安全漏洞偷跑了24年,可能危及全球所有设备!
  15. div模拟textarea在ios下不兼容的问题解决
  16. 区块链到底是个什么鬼?一幅漫画让你秒懂!
  17. CODEBLOCKS 汉化配置
  18. 对数log、lg、ln
  19. 计算机桌面上任务栏在哪里,电脑桌面上的任务栏不见了怎么办
  20. 425 Failed to establish connection解决方案

热门文章

  1. java堆内存_java堆内存详解
  2. oracle视图可以带日期变量么,创建视图时日期字段如何只都天
  3. Node.js webpack 加载器
  4. python threading.lock
  5. win与Linux的防火墙配置
  6. LIST函数JAVA特点_Java 集合系列 07 List总结(LinkedList, ArrayList等使用场景和性能分析)...
  7. 什么是好的虚拟化项目交付(转)
  8. vCenter Events
  9. 关于“想哭”病毒,我也来两句。--转载
  10. 升级至 vCenter Server 6.5 的最佳实践 (2147686)