- 浏览: 2083615 次
- 性别:
- 来自: 厦门
-
文章分类
- 全部博客 (1409)
- asp/asp.net学习 (241)
- oracle (10)
- delphi (295)
- java (27)
- pb (1)
- 每日点滴 (49)
- 学习方法 (40)
- 思想方面 (104)
- C语言 (5)
- C++ (1)
- 代码重构经验 (5)
- 软件工程 (3)
- 数据库 (99)
- 英语学习 (3)
- mysql (1)
- 该关注的网站或者网页 (42)
- 总结 (7)
- 要去做的事情 (33)
- 算法 (1)
- 网络方面 (29)
- 随感 (96)
- 操作系统 (36)
- UML (12)
- 常用工具的使用 (55)
- 脚本 (7)
- 汇编 (62)
- 数据结构 (2)
- 财务 (38)
- 语文作文 (16)
- 法律 (1)
- 股票 (88)
最新评论
-
devwang_com:
可以,学习了~~
列出文件夹下所有文件夹的树形结构--Dos命令 tree的使用 -
hvang1988:
不管用啊 frxrprt1.PreviewForm.Pare ...
fastReport预览时嵌入到别的窗体 -
00915132:
我也有这个疑问,非常 感 谢
left join加上where条件的困惑 --SQL优化 -
zhuyoulong:
学习了,高效读书
软件架构师要读的书 -
nTalgar:
非常感谢分享!
Application.ProcessMessages用法:
转自:http://hi.baidu.com/lingduren/blog/item/5dd85e10c98cd2f4c3ce799d.html
网页生成静态Html文件有许多好处,比如生成html网页有利于被搜索引擎收录,不仅被收录的快还收录的全.前台脱离了数据访问,减轻对数据库访问的压力,加快网页打开速度.
像www.aspid.cn的主站就采用了TSYS生成html文件!
所以吟清最近对生成html比较感兴趣,看了不少文章,也有一点点收获.
1,下面这个例子直接利用FSO把html代码写入到文件中然后生成.html格式的文件 <% filename="test.htm"
3,第三种方法就是用XMLHTTP获取动态页生成的HTML内容,再用ADODB.Stream或者Scripting.FileSystemObject保存成html文件。这句话是在蓝色理想上看到的,对XMLHTTP吟清还不熟悉正在找资料了解.找到一段XMLHTTP生成Html的代码参考一下.
if request("body")<>"" then
set fso = Server.CreateObject("Scripting.FileSystemObject")
set htmlwrite = fso.CreateTextFile(server.mappath(""&filename&""))
htmlwrite.write "<html><head><title>" & request.form("title") & "</title></head>"
htmlwrite.write "<body>输出Title内容: " & request.form("title") & "<br /> 输出Body内容:" & request.form("body")& "</body></html>"
htmlwrite.close
set fout=nothing
set fso=nothing
end if
%>
<form name="form" method="post" action="">
<input name="title" value="Title" size=26>
<br>
<textarea name="body">Body</textarea>
<br>
<br>
<input type="submit" name="Submit" value="生成html">
</form>
2,但是按照上面的方法生成html文件非常不方便,第二种方法就是利用模板技术,将模板中特殊代码的值替换为从表单或是数据库字段中接受过来的值,完成模板功能;将最终替换过的所有模板代码生成HTML文件.这种技术采用得比较多,大部分的CMS都是使用这类方法.
template.htm ' //模板文件 <html>
<head>
<title>$title$ by aspid.cn</title>
</head>
<body>
$body$
</body>
</html> ?
TestTemplate.asp '// 生成Html <%
Dim fso,htmlwrite
Dim strTitle,strContent,strOut
'// 创建文件系统对象
Set fso=Server.CreateObject("Scripting.FileSystemObject")
'// 打开网页模板文件,读取模板内容
Set htmlwrite=fso.OpenTextFile(Server.MapPath("Template.htm"))
strOut=f.ReadAll
htmlwrite.close
strTitle="生成的网页标题"
strContent="生成的网页内容"
'// 用真实内容替换模板中的标记
strOut=Replace(strOut,"$title$",strTitle)
strOut=Replace(strOut,"$body$",strContent)
'// 创建要生成的静态页
Set htmlwrite=fso.CreateTextFile(Server.MapPath("test.htm"),true)
'// 写入网页内容
htmlwrite.WriteLine strOut
htmlwrite.close
Response.Write "生成静态页成功!"
'// 释放文件系统对象
set htmlwrite=Nothing
set fso=Nothing
%> <%
'常用函数
'1、输入url目标网页地址,返回值getHTTPPage是目标网页的html代码
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")
set http=nothing
if err.number<>0 then err.Clear
end function
'2、转换乱玛,直接用xmlhttp调用有中文字符的网页得到的将是乱玛,可以通过adodb.stream组件进行转换
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
txtURL=server.MapPath("../index.asp")
sText = getHTTPPage(txtURL)
Set FileObject=Server.CreateObject("Scripting.FileSystemObject")
filename="../index.htm"
Set openFile=FileObject.OpenTextfile(server.mapPath(filename),2,true) 'true为不存在自行建立
openFile.writeline(sText)
Set OpenFile=nothing
%>
<script>
alert("静态网页生成完毕");
history.back();
</script>
将动态页面转换生成静态Html文件有许多好处,比如生成html网页有利于被搜索引擎收录(特别是对接受动态参数的页面)。前台访问时,脱离了数据访问,减轻对数据库访问的压力,加快网页打开速度。
当然,凡事有利必有弊,生成HTML页面无形中也耗费大量的磁盘空间以存放这些静态文件,在编辑页面过程中除读写数据库外,也要读写服务器磁盘,页面样式的改动必须重新生成全部HTML文件,等等。
像很多搜索引擎,都可以提交网站的页面地址列表,动态文件的收录问题已经不算是个问题了(如google sitemap)。得失就要自己衡量把握了,但无论如何,我们还是要懂得如何操作的。这里就引用一下别人的文章说明几种常见的生成思路,供大家参考参考。
一、下面这个例子直接利用FSO把html代码写入到文件中然后生成.html格式的文件 。这是最原始的,优点是简单,缺点是页面的修改不方便,我一般用到的地方是利用它生成整站参数文件。(通常网站如标题,名称等配置保存在数据库,我将它生成config.asp保存这些变量调用,避免频繁访问数据库)
以下为引用的内容: <% |
二、但是按照上面的方法生成html文件非常不方便,第二种方法就是利用模板技术,将模板中特殊代码的值替换为从表单或是数据库字段中接受过来的值,完成模板功能,将最终替换过的所有模板代码生成HTML文件。这种技术采用得比较多,大部分的CMS都是使用这类方法。
以下为引用的内容: template.htm ' //模板文件 |
三、第三种方法就是用XMLHTTP获取动态页生成的HTML内容,再用ADODB.Stream或者Scripting.FileSystemObject保存成html文件。找到一段XMLHTTP生成Html的代码参考一下。
以下为引用的内容: <% |
四、ASP两种简单的生成静态首页的方法
为什么要生成静态首页?
1、如果你首页读取的数据库次数比较多,速度很慢,而且占用很多服务器资源。使用静态页面访问速度当然快多了
2、搜索引擎容易搜索到
3、如果程序出问题,也能保证首页能访问。
4、其他的太多,自己想:)
应用方式:
如果你的首页是index.asp,你可以生成index.htm (默认访问顺序必须是index.htm,index.asp)。这样访问者第一次访问到你的网站的时候打开的是index.htm 。你可以把网站首页的链接做成index.asp,这样从网站任何一个页面点击首页的链接出现的就是index.asp,这样保证的信息更新的及时性(毕竟index.htm需要每次手动更新)。
方法一:
直接将首页文件包含在表单文本框中,将首页代码最为数据提交,然后生成静态页面。
代码如下:
<%
'------------------------------------------------------------
'使用表单提交生成静态首页的代码
'确保你的空间支持FSO,且首页代码内容较少
'------------------------------------------------------------
dim content
content=Trim(Request.Form("content"))
if content<>"" then
call makeindex()
end if
sub makeindex()
Set Fso = Server.CreateObject("Scripting.FileSystemObject")
Filen=Server.MapPath("index.htm")
Set Site_Config=FSO.CreateTextFile(Filen,true, False)
Site_Config.Write content
Site_Config.Close
Set Fso = Nothing
Response.Write("<script>alert('已经成功生成首页!')</script>")
end sub
%>
<form name="form1" method="post" action="">
<textarea name="content">
<!-- #i nclude file="index.asp" -->
</textarea>
<br>
<input type="submit" name="Submit" value="提交">
</form>
缺点:
1、如果首页中包括<@ ..>标记,会提示出错。
2、如果首页代码较长,用表单无法提交过去(表单数据长度有一定的限制)。
解决方案:
1、去掉index.asp中的<@ >标记
2、使用eWebEditor,提交支持大数据(能自动分割)
优点:
可以在生成时对内容实时修改。
方法二:
直接使用XMLHTTP获取index.asp的代码
<%
'----------------------------------------------------------
'使用XMLHTTP生成静态首页的代码
'Curl 为你的首页地址,确保你的空间支持FSO
'-----------------------------------------------------------
dim read,Curl,content
Curl="http://www.xx0123.com/index.asp"
read=getHTTPPage(Curl)
if read<>"" then
content=read
call makeindex()
end if
sub makeindex()
Set Fso = Server.CreateObject("Scripting.FileSystemObject")
Filen=Server.MapPath("index.htm")
Set Site_Config=FSO.CreateTextFile(Filen,true, False)
Site_Config.Write content
Site_Config.Close
Set Fso = Nothing
Response.Write("<script>alert('已经成功生成首页!')</script>")
end sub
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")
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
%>
五、模板分离批量生成
模板文件中要替换的内容均以{...}括起来
为力求简洁,去掉了错误处理代码(replace中要来替换的字符串参数不能为null值,当然fso也应该做错误检查)。
<%
' ---------------------------------------------------------------------------------------------------------------------
Dim start '该变量为指针将要指向的记录集位置,通过参数动态获得
Dim Template '模板文件将以字符串读入该变量
Dim content '替换后的字符串变量
Dim objConn '连接对象
Dim ConnStr '连接字符串
Dim sql '查询语句
Dim cnt:cnt = 1 '本轮循环计数器初始化
start = request("start") '获取本轮指针的开始位置
If IsNumeric(start) Then start = CLng(start) Else start=1
If start=0 Then start = 1 '如果start
ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath("DataBase.mdb")
sql = "select * from table_name"
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open ConnStr
set rs = Server.CreateObject("ADODB.Recordset")
rs.open sql,objConn,1,1 '打开数据集
rs.AbsolutePosition = start '最关键的一步,将指针指向start,start通过参数动态获得
Template = getTemplate(Server.MapPath("template.html"))' template.html为模板文件,通过函数getTemplate读入到字符串,模板文件中要替换的内容均以{...}括起来
While Not rs.eof And cnt<= 500 '500是设定一次请求生成页面的循环次数,根据实际情况修改,如果太高了,记录集很多的时候会出现超时错误
content = Replace(Template,"{filed_name_1}",rs("filed_name_1")) '用字段值替换模板内容
content = Replace(content,"{filed_name_2}",rs("filed_name_2"))
......
content = Replace(content,"{filed_name_n}",rs("filed_name_n"))
genHtml content,Server.MapPath("htmfiles/"&rs("id")&".html") '将替换之后的Template字符串生成HTML文档,htmfiles为存储静态文件的目录,请手动建立
cnt = cnt + 1 '计数器加1
start = start + 1 '指针变量递增
rs.movenext
wend
If Not rs.eof Then '通过刷新的方式进行下一轮请求,并将指针变量start传递到下一轮
response.write "<meta http-equiv='refresh' content='0;URL=?start="&start&"'>"
Else
response.write "生成HTML文件完毕!"
End if
rs.Close()
Set rs = Nothing
objConn.Close()
Set objConn = Nothing
Function getTemplate(template)'读取模板的函数,返回字符串,template为文件名
Dim fso,f
set fso=CreateObject("Scripting.FileSystemObject")
set f = fso.OpenTextFile(template)
getTemplate=f.ReadAll
f.close
set f=nothing
set fso=Nothing
End Function
Sub genHtml(content,filename)'将替换后的内容写入HTML文档,content为替换后的字符串,filename为生成的文件名
Dim fso,f
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set f = fso.CreateTextFile(filename,true)'如果文件名重复将覆盖旧文件
f.Write content
f.Close
Set f = Nothing
set fso=Nothing
End Sub
%>
发表评论
-
关于 字符串中的单引号, 在sql存储过程中的传输总结; 逗号分隔的多个变量提取方法.
2011-10-14 17:49 3419摘自:http://blog.csdn.net/nutia ... -
抓取网站内容 asp.net
2011-10-11 13:28 1059HttpWebRequest myReq ... -
两个DATASET合并成一个新的DATASET
2011-09-28 18:17 2569摘自:http://topic.csdn.net/t/2 ... -
VS设置使用哪个浏览器来调试网页
2011-08-30 16:57 1210摘自:http://zhidao.baidu.com/ques ... -
可使用js获取TREE的CheckBox
2011-08-20 12:32 1100摘自:http://www.uipower.com/bb ... -
正则表达式 验证邮箱
2011-06-02 18:14 2659正则表达式 摘自:http://www.alixixi.com ... -
未能加载程序集 App_Web_vdcnimdz”错误
2011-04-25 17:38 1618问题描述: 自己的一个WebGPS程序,只是拷到了别的 ... -
.net跳到指定错误页面兵显示详细的错误信息
2011-04-14 16:48 1276.net跳到指定错误页面兵显示详细的错误信息 摘自:h ... -
注册*.ocx控件
2011-04-14 11:23 962注册*.ocx控件 问题描述:本地的网站的bin目录下有了个 ... -
C# 读取文本文件的时候出现汉字乱码
2011-04-12 16:01 2492问题描述:C# 使用ReadAllText方法读取文本文件的时 ... -
VS 2008中如何显示代码的行号
2011-04-09 09:51 1262摘自:http://zhidao.baidu.com/ques ... -
VS.NET2008可以使用书签的功能
2011-04-08 17:19 1407摘自:http://blog.csdn.net/lmh_851 ... -
两个类库要添加引用才能使用
2011-04-02 13:57 1173两个类库要添加引用才能使用 ---------------- ... -
缓存 <%@ OutputCache Duration="6000" VaryByParam="none" %>
2011-04-02 10:53 1191在页首添加: <%@ OutputCache Durat ... -
FrameSet的加载顺序
2011-04-02 09:56 3916FrameSet的加载顺序是: (1) mainFrame ... -
Response.AddHeader “P3P”,”CP=CAO PSA OUR”
2011-04-01 18:01 2575摘自:http://my.donews.com/alor ... -
Hashtable 的使用
2011-03-31 09:36 8242011-3-31 Hashtable 的使用: ... -
google地图使用(二)
2011-03-30 10:30 13472011-3-291. 今天客户反映,说GOOGLE地图上的拖 ... -
GOOGLE地图
2011-03-29 18:31 8452011-3-291. 今天客户反映,说GOOGLE地图上的拖 ... -
此组中没有可用的控件 工具箱 vs2008
2011-03-29 09:20 2148问题描述: 此组中没有可用的控件 工具箱 vs2008 ...
相关推荐
完整的asp生成静态页面 asp生成静态页面,包括数据的添加、删除、修改,webeditor的使用和一些简单的js的使用根目录下index.htm页面为生成的首页asp文件夹 index.htm为后台操作页面 createhtml.asp为生成所有新闻静态...
然而,手动创建和维护大量静态页面可能会变得非常繁琐,这就是ASP生成静态网页的用武之地。 ASP生成静态网页的基本过程包括以下几个步骤: 1. **页面请求**:当用户通过浏览器请求一个页面时,服务器接收到这个...
ASP生成静态页面的过程主要是为了提高网站的性能和搜索引擎优化(SEO)。静态页面是指内容不会根据用户请求而改变的HTML文件,它们被预先生成并存储在服务器上,用户请求时直接返回,无需服务器进行复杂的计算。这种...
"ASP生成静态页面源码"指的是使用ASP技术将动态网页转换为静态HTML页面的程序代码。静态页面相比于动态页面有几大优势:首先,静态页面加载速度快,因为它们不依赖服务器上的脚本执行;其次,搜索引擎更友好,更容易...
总结来说,通过ASP生成静态页面,我们可以提高网站性能,优化SEO,并减少服务器的维护成本。在实践中,需要考虑如何平衡动态内容的实时性和静态页面的更新机制,确保用户体验和搜索引擎友好性。
一、ASP生成静态页面的几种方法: 1. **脚本动态生成**: ASP程序在接收到请求时,实时生成HTML页面并将其发送给浏览器。这种方式虽然灵活,但每次请求都需要服务器资源,可能导致服务器负载增加。 2. **缓存技术...
总的来说,ASP生成静态页面是一个实用的技术,尤其对于那些需要高性能和良好SEO表现的网站。它结合了动态内容生成的灵活性和静态页面的效率优势,是Web开发中的一个重要工具。通过深入理解并实践这样的技术,开发者...
总之,ASP生成静态网页(UTF-8)是提高网站性能和国际化的一种有效方法,涉及的关键技术包括动态数据处理、编码转换、文件操作以及URL管理和SEO策略。理解并熟练掌握这些技术,对于提升网站的用户体验和搜索引擎排名...
ASP(Active Server ...总的来说,通过ASP生成静态页面是一种有效的网站性能优化手段,它可以提升网站的响应速度和搜索引擎可见性。利用工具如AspToHtml1.5,可以简化这一过程,让开发者更专注于内容的创建和维护。
在实际应用中,使用ASP生成静态页面的流程通常包括以下步骤: 1. **设计页面模板**:开发者创建HTML模板,标记出需要动态替换的部分。 2. **设置数据源**:配置ASP脚本连接数据库或其他数据源,准备需要展示的数据...
ASP生成静态网页程序则解决了这个问题,它能够自动或按需将动态内容转换为静态页面,从而提高网站的效率和用户体验。 压缩包中的“iis下rewrite独立主机方法.doc”文件很可能是一个关于如何在IIS(Internet ...
首先,我们需要理解ASP生成静态页面的基本步骤: 1. **读取ASP页面内容**:使用ASP内置的对象如Response对象,我们可以读取ASP页面的源代码。例如,`Response.Write Request.ServerVariables("REQUEST_URI")` 可以...
在“ASP生成静态HTML网页”的场景下,特别是用于“新闻发布系统”,我们可以理解为系统会自动将发布的新闻内容通过ASP脚本处理,转换成HTML文件。这样做的优点是用户访问新闻页面时,直接加载已经生成的HTML,无需...
在标签中提到了“nmap-3.75”,这可能是一个误关联,因为nmap通常指的是网络映射工具,主要用于网络安全扫描,与ASP生成静态页面的主题不直接相关。不过,如果是在ASP环境下进行网站安全检测,nmap或许可以用来检查...
**ASP生成静态页面HTML源码的核心原理:** 1. **请求处理**:当用户访问一个ASP动态页面时,Web服务器接收到请求,然后解析ASP文件中的脚本代码。 2. **动态内容生成**:ASP脚本运行,根据需要从数据库或其他数据...
这个"ASP生成静态页面类"的标题暗示了它提供了一种简单的方法来自动化这个过程。通常,这个类会包含一些关键功能,如: 1. **参数接收**:类可能有一个方法用于接收ID或其他参数,这些参数用于确定要生成的静态页面...
在使用ASP生成静态页面时,主要涉及以下几个关键知识点: 1. **脚本语言**:如VBScript或JScript,是ASP的基础,用于编写处理动态内容的代码。 2. **Response对象**:ASP中的Response对象负责向客户端发送响应,...
在这个实例中,我们将探讨如何使用Asp生成静态页面,以及涉及的数据库操作。 1. **Asp基础**: Asp是基于HTTP协议的,它允许开发者使用诸如VBScript或JScript等脚本语言在服务器端编写代码。当用户向服务器发送...
【ASP生成静态页面方法详解】 ASP(Active Server Pages)是一种微软开发的服务器端脚本语言,常用于构建动态网页。然而,为了提高网站性能、优化搜索引擎排名和减轻服务器负载,有时需要将ASP页面转换为静态的HTML...
asp.net生成静态页面并分页 点击按钮把所有动态页面生成静态页面 asp.net生成静态页面并分页 asp.net生成静态页面并分页 asp.net生成静态页面并分页 asp.net生成静态页面并分页 asp.net生成静态页面并分页