ASP生成静态页面
1.什么是动态网页和静态网页动态网页:一般指的是采用ASP,ASP.NET,JSP,PHP,Cold Fusion,CGI等程序动态生成的页面,该网页中的大部分数据内容来自与网站相连的数据库。这个页面在网络空间中并不存在,动态网页往往容易给人留下深刻的印象。此外,动态网页还具有容易维护、更新的优点。
首先网页获得用户的指令,然后网页拿着指令到数据库中找和指令对应的数据,然后传递给服务器,通过服务器的编译把动态页面编译成标准的HTML代码,传递给用户浏览器,这样用户就看到了网页。问题出来了,每次访问网页都要经过这么一个过程,这一过程至少需要几秒钟的时间,访问的人数一多,页面的加载速度就会变慢,对服务器来说也是一种负担;从用户角度来说,网页加载的慢,所以大型网站都是静态网页呈现。绝大多数的搜索引擎都已支持动态页面的抓取,这就是我们现在这些搜索引擎进行搜索时,结果中出现动态链接的原因,但抓取的数量比静态页面要差的很多倍。
静态网页:静态网页就简单了,静态网页是实际存在的,无需经过服务器的编译,直接加载到客户浏览器上显示出来。由此可见,动态网页在访问速度上并不占优势。但是静态网页也有自己的缺陷,由于占用空间比较大,需要大量的服务器,花费上要高于动态网页网站。
伪静态:论坛和留言系统程序由于评论的人较多,更新速度较快,用纯静态可以说是不起实际,但是用纯静态搜索引擎非常不友好,这时候就出现了一种新的技术,伪静态。
伪静态的缺点是页面访问速度较慢,cpu占用资源较大,如果是ISS数是1000的网站,当有300人同时在线的时候就会出现错误。但是伪静态对收录同样能起到非常好的作用。
2. 为什么要生成静态页面在三年前,有百分之八十的网站要求做成动态的。也就是从那个时候也就是ASP的发展高峰期。一些静态网页也要求做成动态网站。但是这二年来,网站要求做成静态的。也就是网页要求静态化。
为什么会有这样的变化?到底意味着什么?
目前网页HTML静态化是利用其它的动态技术生成HTML静态页面,还不是静态网站。因为的确是这样的,生成HTML静态网页有一定的好处。
一、加快页面打开浏览速度,静态页面无需连接数据库打开速度较动态页面有明显提高;
二、有利于搜索引擎优化SEO,Baidu、Google都会优先收录静态页面,不仅被收录的快还收录的全;
三、减轻服务器负担,浏览网页无需调用系统数据库;
四、网站更安全,HTML页面不会受Asp相关漏洞的影响;
观看一下大一点的网站基本全是静态页面,而且可以减少攻击,防sql注入。数据库出错时,不影响网站正常访问。
生成html文章虽操作上麻烦些,程序上繁杂些,但为了更利于搜索,为了速度更快些,更安全,这些牺牲还是值得的。
说法一:
1、省掉了服务器处理时间和调用数据库的时间,访问速度比一般动态网站快10-20倍;
2、不用调用数据库,服务器端的CPU调用大大减少,增加服务器的性能;
3、生成静态路径利用搜索引擎的抓取和收录;
4、在排名中静态页面的排名权重要高于动态路径的页面。
说法二:
1、安全,静态页面从理论上讲是没有攻击漏洞的;
2、没有数据库访问或减少服务器对数据响应的负荷,速度快;
3、化化引擎,易于搜索引擎收录,搜索引擎比较喜欢收录静态页面;
4、降低服务器的承受能力,因为其不需要解析就可以返回客户端,因此减少了服务器的工作量,同时也减少了数据库的成本;
5、有意义的文件名,提高了可用性(对中文似乎就没这个优势了吧) 。
说法三:
提问:ASP生成静态HTML后更有利于搜索引擎收录吗?为什么?
答:是的,静态HTML更有利于搜索引擎收录。
因为静态网页和动态网页的区别在于动态网页可以给于浏览者权限,而搜索引擎抓取的时候是以游客身份进入的,所以不容易被抓取和收录,而静态网页由于不存在页面权限问题,所以更容易被收录,相对来说如果你的动态页面没有加任何权限的话也同样容易被收录!例如不生成静态页面的博客ASP PHP .net CGI的论坛,只要没有访问权限限制都会被收录!
从以上的观点可以看出,生成静态页面的好处。现在知名、主流的大站基本上都静下来了。
3. ASP生成静态页面的方法随着网站访问量的加大,每次从数据库读取都是以效率作为代价的,很多用ACCESS作数据库的更会深有体会,静态页加在搜索时,也会被优先考虑。互联网上流行的做法是将数据源代码写入数据库再从数据库读取生成静态面,这样无形间就加大了数据库。将现有的ASP页直接生成静态页,将会节省很多。
下面的例子是将、index.asp?id=1/index.asp?id=2/index.asp?id=3/这三个动态页面,分别生成index1.htm,index2.htm,index3.htm存在根目录下面:
代码如下
<%
dim strUrl,Item_Classid,id,FileName,FilePath,Do_Url,Html_Temp
Html_Temp="<UL>"
For i=1 To 3
Html_Temp = Html_Temp&"<LI>"
Item_Classid = i
FileName = "Index"&Item_Classid&".htm"
FilePath = Server.MapPath("/")&""&FileName
Html_Temp = Html_Temp&FilePath&"</LI>"
Do_Url = 你的网站地址
Do_Url = Do_Url&Request.ServerVariables("SERVER_NAME")&"/main/index.asp"
Do_Url = Do_Url&"?Item_Classid="&Item_Classid
strUrl = Do_Url
dim objXmlHttp
set objXmlHttp = Server.CreateObject("Microsoft.XMLHTTP")
objXmlHttp.open "GET",strUrl,false
objXmlHttp.send()
Dim binFileData
binFileData = objXmlHttp.responseBody
Dim objAdoStream
set objAdoStream = Server.CreateObject("ADODB.Stream")
objAdoStream.Type = 1
objAdoStream.Open()
objAdoStream.Write(binFileData)
objAdoStream.SaveToFile FilePath,2
objAdoStream.Close()
Next
Html_Temp = Html_Temp&"<UL>"
%>
<%
Response.Write ( "成功生成文件:" )
Response.Write ( "<BR>" )
Response.Write Html_Temp
%>