asp静态页面和jsp动态页面静态化的区别

二次元同好交流新大陆
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
我就是我,没什么好讲的,爱交际,认识是一种缘分,认识你真好!!!!!!!!!!!
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(126)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_084069',
blogTitle:'动态网站和静态网站的区别',
blogAbstract:'有很多客户不能理解动态网站和静态网站的区别,在这里简单介绍一下. \r\n简单点说 \r\n静态网站:早期的网站一般都是由静态网页制作的。“静态”网站,如果公司的数据不多,产品比较固定,更新不频繁 的用户可以做静态网站,静态网页的内容相对稳定,因此容易被搜索引擎检索;。静态网站不易维护,若网站要更新网页的内容,就必须要有专业技术。为了不断更新网页内容,那怕是一点点的变化,维护者也要找制作者更新,因此当网站信息量很大时完全依靠静态网页制作方式比较困难; ',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:3,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'我就是我,没什么好讲的,爱交际,认识是一种缘分,认识你真好!!!!!!!!!!!',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}教你如何用ASP生成HTML静态网页
七彩课堂[网络设计教程]
教你如何用ASP生成HTML静态网页
教你如何用ASP生成HTML静态网页:
一、为什么要生成静态?
生成静态的优点很显然,生成静态后能提高访问速度,静态HTML基本不需要经过服务器解释。而ASP需要服务器解器,占用内存、CPU等服务器资源。
生成静态也有其缺点:1、占用磁盘空间,现在硬盘便宜,不差这点空间。2、更新慢,修改网页时要全站更新,数据量大就需要很长时间生成。但这一点只要建站时规划好是可以克服的。
二、生成静态的方法有哪些?
1、使用XMLHTTP组件来生成:这种方法无需做模板,先做一个动态的网页,测试合格后,用XMLHTTP获取源代码保存。这种方法适合更新量小的站,因为生成时占用比较大的服务器资源。建议不使用。 如首页需要静态化,则可以使用这种方法。详见》》asp利用XMLHTTP组件获取网页源文件
2、利用FSO组件生成。一般实现方法如下:
模板:做一个模板,将需要替换的项目标出来。
说明:头部和脚部可以独立在模板之外,也可以放在一起。
生成:生成程序最好独立一个asp文件。
首先根据传入的信息ID,查询数据库,把需要的数据查出来。
然后用FSO读取模板。
相关函数:
function savefile(filename,str) '保存文件
'Response.Write(str)
Set MyFile = fso.CreateTextFile(filename,True)
MyFile.WriteLine(str)
MyFile.Close
response.write filename&&成功创建!(&&len(str)&&)&br&&
end function
function getfile(filename) '读取模板
response.write filename&&获取成功!&br&&
Set txt = fso.OpenTextFile(filename,1)
getfile = txt.Readall
end function
function createfolder(foldername) '建立目录
foldername=foldername
if not fso.folderexists(foldername) then
fso.createfolder(foldername)
end function
将模板中的相应字符替换。如:
motext1=replace(motext1,&xtitlex&,rs(&title&))
motext1=replace(motext1,&xinfoidx&,rs(&infoid&))
motext1=replace(motext1,&xtimex&,year(addtime1)&&年&&month(addtime1)&&月&&day(addtime1)&&日&)
motext1=replace(motext1,&xaddtimex&,addtime1&&&)
motext1=replace(motext1,&xcontentx&,&xcontentx&&tagstr)
headstr=replace(headstr,&xtitlex&,rs(&title&))
headstr=replace(headstr,&xdescriptionx&,rs(&title&)&rs(&description&)&& &)
将替换后的结果保存写入文件。
path=&../news/&&year(addtime1)&month(addtime1)&day(addtime1)
path1=server.mappath(path) '生成路径
call createfolder(path1) '建文件夹
filename=path1&&/&&rs(&infoid&)&&.htm& '文件名
call savefile(filename,motext1) '保存
这样就完成了生成过程.
3、批量生成的实现方法:
可以使用js调用如:&script src=&make.asp?id=11&& &/script&,通过查询数据库,循环即可批量生成。
4、自动生成的实现方法:
添加信息,保存到数据库之后,把最新一条信息的ID查询出来,调用JS:&script src=&make.asp?id=11&& &/script&。即可生成。
5、生成静态之后带来的问题及解决方法:
有些页面中有的内容是要实时更新的,如果不考虑SEO网站优化因素,可以使用JS或IFRAME来达到目的。如统计文章的点击量:&script src=/count.asp?id=xidx&&/script&生成时把xidx替换成当前文章的ID即可。如需在页面中显示出点击量可以用:document.write();输出。
如:显示判断是否登陆的信息,我们可以使用IFRAME来实现,比较简单;也可以使用JS来实现。
如要显示最新信息,可以用JS。
6、生成静态要考虑SEO效果与实际。可以使用SHTML技术,SHTML性能比HTML低一点,但几乎可以不考虑这一点点的性能牺牲。SHTML可以使用和ASP一样的include语句如:&!--#include file=&aa.htm&--&,但不能包含ASP程序。更新时只需要更新AA.htm即可。目前很多大型网站都采用这种格式。推荐这篇日记的豆列
······Asp/PHP动态网页程序与HTML静态网页的区别
ASP或者PHP网页,指的是使用PHP或者ASP程序语言编写的具有逻辑网站程序。该程序一般与数据库关联,并且需要在服务器环境下才能运行,需要对相应的程序编程语言有一定的基础才能设计编写出完整的应用程序。
HTML静态网页是使用HTML网页代码进行设计的展示性网页,可以使用Dreamweaver/Frontpage的制作工具的可视化操作简单完成设计。HTML静态网页可以直接双击通过浏览器打开浏览,但是该网页不具备数据库、用户交互的功能。
HTML静态网页所谓的静态并不是说网页中的元素都是不动的,在HTML网页中,可以运用丰富的动态flash、图片、文字、视频、特效等功能。比较ASP生成静态HTML文件的几种方法
将动态页面转换生成静态Html文件有许多好处,比如生成html网页有利于被搜索引擎收录(特别是对接受动态参数的页面)。前台访问时,脱离了数据访问,减轻对数据库访问的压力,加快网页打开速度。
当然,凡事有利必有弊,生成HTML页面无形中也耗费大量的磁盘空间以存放这些静态文件,在编辑页面过程中除读写数据库外,也要读写服务器磁盘,页面样式的改动必须重新生成全部HTML文件,等等。
像很多搜索引擎,都可以提交网站的页面地址列表,动态文件的收录问题已经不算是个问题了(如google sitemap)。得失就要自己衡量把握了,但无论如何,我们还是要懂得如何操作的。这里就引用一下别人的文章说明几种常见的生成思路,供大家参考参考。
1、下面这个例子直接利用FSO把html代码写入到文件中然后生成.html格式的文件 。这是最原始的,优点是简单,缺点是页面的修改不方便,我一般用到的地方是利用它生成整站参数文件。(通常网站如标题,名称等配置保存在数据库,我将它生成config.asp保存这些变量调用,避免频繁访问数据库)
以下为引用的内容:
<% filename=&test.htm& 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$ </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 %&
3、第三种方法就是用XMLHTTP获取动态页生成的HTML内容,再用ADODB.Stream或者Scripting.FileSystemObject保存成html文件。找到一段XMLHTTP生成Html的代码参考一下。
以下为引用的内容:
<% '常用函数 '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文件方法,我个比较喜欢使用第三种方式,因为页面改动时非常方便,就算动态页改动多大都好,只要重新用XMLHTTP读取生成一次即可。
看过本文的人还看过
最新图文推荐
最新专栏文章
大家感兴趣的内容
&&<a rel="nofollow" class="red" href="" target="_blank" color="red新版网站排行榜
===全新上线===
网友热评的文章

我要回帖

更多关于 静态页面调用动态接口 的文章

 

随机推荐