靜態網頁簡易生成方法
目前要完成靜態頁面生成的主要方法有簡單的模板替換、常見的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的任務計劃,這裡的方法是把下面程式碼寫入一靜態頁中,然後在瀏覽器開啟網頁。
<script>
function run(){
window.open('make_html.asp','_blank');}
setInterval(run,5000);
</script>
在JavaScript中使用XmlHttpRequest
物件獲取網頁程式碼的方法,在返回中文的時候會出現亂碼的原因是:
- xmlhttp返回的資料預設的字元編碼是utf-8,如果客戶端頁面是gb2312或者其他編碼就會產生亂碼。
- post方法提交的資料預設字元編碼也是utf-8,如果伺服器端是gb2312或其他編碼資料就會產生亂碼。
解決方法:
若客戶端是gb2312編碼,則在伺服器指定輸出流編碼:
Response.ContentType = "text/html" Response.Charset = "GB2312"
伺服器端和客戶端都使用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>
本文為Anyforweb技術分享部落格,需要了解網站建設相關,請訪問anyforweb.com。
相關文章
- 【雜談】一個簡易的靜態網頁伺服器網頁伺服器
- 一個簡單靜態網頁網頁
- php 生成靜態頁面PHP
- PHP生成靜態頁面PHP
- 易優cms網站SEO模組URL配置偽靜態靜態頁面設定網站
- Asp.net實現靜態頁-新增新聞生成靜態頁ASP.NET
- 靜態網頁與動態網頁的區別網頁
- 靜態網頁和動態網頁的區別網頁
- .NET生成靜態頁面的方案總結
- 【Hover】ASP.Net生成靜態HTML頁!ASP.NETHTML
- echarts map靜態套用網頁Echarts網頁
- 【靜態化平臺】☞(一)網頁靜態化服務網頁
- JSP生成靜態HTML頁面的實踐方法和設計思路薦JSHTML
- 不用模板只用ASP+FSO生成靜態HTML頁的一個方法(轉)HTML
- 通過Git簡易的部署靜態站點Git
- 靜態庫生成
- 利用Django徒手寫個靜態頁面生成工具Django
- 實現一個簡易的靜態伺服器伺服器
- net 靜態方法與非靜態方法
- 爬蟲進階——動態網頁Ajax資料抓取(簡易版)爬蟲網頁
- Django構建靜態網頁站點Django網頁
- 靜態方法
- 用XML和XSLT來生成靜態的HTML頁面XMLHTML
- 靜態變數與靜態方法變數
- 正則表達示在ASP.NET中用來生成靜態網頁的使用ASP.NET網頁
- 網頁靜態化之freemaker的使用網頁
- php生成靜態檔案PHP
- 使用Java和Maven(JBake)生成靜態網站 - optaplannerJavaMaven網站
- Hugo -最好用的靜態網站生成器Go網站
- JavaScript 靜態屬性與靜態方法JavaScript
- 深入瞭解網站中的靜態網頁和動態網頁的相關知識網站網頁
- 靜態網頁高仿正方教育系統網頁(HTML+CSS)網頁HTMLCSS
- java生成簡易pdf文件Java
- cmake:生成靜態庫和動態庫
- 網頁渲染方式-從靜態頁面到服務端渲染網頁服務端
- javascript的靜態方法和例項方法簡單介紹JavaScript
- 1.1 koa靜態官網之教程簡介
- Nginx 部署靜態頁面Nginx