|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp可以轻松地实现对页面内容的动态控制,根据不同的浏览者,显示不同的页面内容。而浏览者一点觉察不出来,就像为他专门制作的页面一样。使用各种各样的组件,asp可以完成无比强大的功能。静态|页面 计划1:
///<summary>
///传进URL前往网页的html代码
///</summary>
///<paramname="Url">URL</param>
///<returns></returns>
publicstaticstringgetUrltoHtml(stringUrl)
{
errorMsg="";
try
{
System.Net.WebRequestwReq=System.Net.WebRequest.Create(Url);
//Gettheresponseinstance.
System.Net.WebResponsewResp=wReq.GetResponse();
//ReadanHTTP-specificproperty
//if(wResp.GetType()==HttpWebResponse)
//{
//DateTimeupdated=((System.Net.HttpWebResponse)wResp).LastModified;
//}
//Gettheresponsestream.
System.IO.StreamrespStream=wResp.GetResponseStream();
//DimreaderAsStreamReader=NewStreamReader(respStream)
System.IO.StreamReaderreader=newSystem.IO.StreamReader(respStream,System.Text.Encoding.GetEncoding("gb2312"));
returnreader.ReadToEnd();
}
catch(System.Exceptionex)
{
errorMsg=ex.Message;
}
return"";
}
你能够用这个函数猎取网页的客户真个html代码,然后保留到.html文件里就能够了。
计划2:
天生单个的静态页面不是难点,难的是各个静态页面间的联系关系和链接怎样坚持完全;出格是在页面频仍更新、修正、或删除的情形下;
像阿里巴巴的页面也全体是html的,估量用的是地点映照的功效关于地点映照可参考:http://www.easewe.com/Article/ShowArticle.aspx?article=131
能够看看这个页面,剖析一下他的“竞价倒计时”功效http://info.china.alibaba.com/news/subject/v1-s5011580.html?head=top4&Bidding=home5
ASP.Net天生静态HTML页
在Asp中完成的天生静态页用到的FileSystemObject工具!
在.Net中触及此类操纵的是System.IO
以下是程序代码注:此代码非原创!参考他人代码
CODE:
//天生HTML页
publicstaticboolWriteFile(stringstrText,stringstrContent,stringstrAuthor)
{
stringpath=HttpContext.Current.Server.MapPath("/news/");
Encodingcode=Encoding.GetEncoding("gb2312");
//读取模板文件
stringtemp=HttpContext.Current.Server.MapPath("/news/text.html");
StreamReadersr=null;
StreamWritersw=null;
stringstr="";
try
{
sr=newStreamReader(temp,code);
str=sr.ReadToEnd();//读取文件
}
catch(Exceptionexp)
{
HttpContext.Current.Response.Write(exp.Message);
HttpContext.Current.Response.End();
sr.Close();
}
stringhtmlfilename=DateTime.Now.ToString("yyyyMMddHHmmss")+".html";
//交换内容
//这时候,模板文件已读进到称号为str的变量中了
str=str.Replace("ShowArticle",strText);//模板页中的ShowArticle
str=str.Replace("biaoti",strText);
str=str.Replace("content",strContent);
str=str.Replace("author",strAuthor);
//写文件
try
{
sw=newStreamWriter(path+htmlfilename,false,code);
sw.Write(str);
sw.Flush();
}
catch(Exceptionex)
{
HttpContext.Current.Response.Write(ex.Message);
HttpContext.Current.Response.End();
}
finally
{
sw.Close();
}
returntrue;
此函数放在Conn.CS基类中了在增加旧事的代码中援用注:工程名为Hover
if(Hover.Conn.WriteFilethis.Title.Text.ToString),this.Content.Text.ToString),this.Author.Text.ToString)))
{
Response.Write("增加乐成");
}
else
{
Response.Write("天生HTML堕落!");
}
模板页Text.html代码
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
<HTML>
<HEAD>
<title>ShowArticle</title>
<body>
biaoti
<br>
content<br>
author
</body>
</HTML>
biaoti
<br>
content<br>
author
</body>
</HTML>
提醒增加乐成后会出以以后工夫为文件名的html文件!下面只是把传送过去的几个参数间接写进了HTML文件中,在实践使用中必要先增加数据库,然后再写进HTML文件
计划3:给一个客户端参考的例子(SJ)
它的感化在于以客户真个体例猎取某个页面的代码,然后能够做为其他用处,本例是间接输入
<script>
varoXmlHttp=newActiveXObject("Microsoft.XMLHTTP");
oXmlHttp.open("GET","http://www.webjx.com",false);
oXmlHttp.send()
varoStream=newActiveXObject("ADODB.Stream");
if(oStream==null)
alert("您的呆板不撑持ADODB.Stream.")
else
{
oStream.Type=1;
oStream.Mode=3;
oStream.Open();
oStream.Write(oXmlHttp.responseBody);
oStream.Position=0;
oStream.Type=2;
oStream.Charset="gb2312";
varresult=oStream.ReadText();
oStream.Close();
oStream=null;
varaa=window.open("","")
document.write(result);
aa.document.write(result);
}
</script>
计划4:学csdn一样。用xml保留数据,模版XSL也只要一个文件。
利用xml来保留数据,利用xsl来界说模板而且生称数据。能够经由过程xsl来很便利的在客户端大概服务段显现数据。假如要天生静态叶面那更复杂了。往查一下.net的xml类包成绩办理。
长处:能够便利疾速转换成你想要的格局和内容。
弱点:必要进修更多的内容,欠好进门。
计划5:
思绪
1.使用如Dw-Mx如许的工具天生html格局的模板,在必要增加格局的中央到场特别标志(如$htmlformat$),静态天生文件时使用代码读取此模板,然后取得前台输出的内容,增加到此模板的标志地位中,天生新文件名后写进磁盘,写进后再向数据库中写进相干数据。
2.利用背景代码硬编码Html文件,可使用HtmlTextWriter类来写html文件。
长处
1.能够创建十分庞大的页面,使用包括js文件的办法,在js文件内到场document.write()办法能够在一切页面内到场如页面头,告白等外容。
2.静态html文件使用MSWindows2000的IndexServer能够创建全文搜刮引擎,使用asp.net能够以DataTable的体例失掉搜刮了局。而Win2000的Index服务没法查找xml文件的内容。假如包含了数据库搜刮与Index索引两重查找,那末此搜刮功效将十分壮大。
3.节俭服务器的负荷,哀求一个静态的html文件比一个aspx文件服务器资本节俭很多。
弱点
思绪二:假如用硬编码的体例,事情量十分年夜,必要十分多的html代码。调试坚苦。并且利用硬编码天生的html款式没法修正,假如网站改换款式,那末必需得从头编码,给前期带来伟大的事情量。
因而这里接纳的是第一种思绪
示列代码
1.界说(template.htm)html模板页面
<html>
<head>
<title></title>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
</head>
<body>
<table$htmlformat[0]height="100%"border="0"width="100%"cellpadding="10"cellspacing="0"bgcolor="#eeeeee"style="border:1pxsolid#000000">
<tr>
<tdwidth="100%"valign="middle"align="left">
<spanstyle="color:$htmlformat[1];font-size:$htmlformat[2]">$htmlformat[3]</span>
</td>
</tr>
</table>
</body>
</html>
2.asp.net代码:
//---------------------读html模板页面到stringbuilder工具里----
string[]format=newstring[4];//界说和htmlyem标志数量分歧的数组
StringBuilderhtmltext=newStringBuilder();
try
{
using(StreamReadersr=newStreamReader("寄存模板页面的路径和页面名"))
{
Stringline;
while((line=sr.ReadLine())!=null)
{
htmltext.Append(line);
}
sr.Close();
}
}
catch
{
Response.Write("<Script>alert(读取文件毛病)</Script>");
}
//---------------------给标志数组赋值------------
format[0]="background="bg.jpg"";//背景图片
format[1]="#990099";//字体色彩
format[2]="150px";//字体巨细
format[3]="<marquee>天生的模板html页面</marquee>";//笔墨申明
//----------交换htm里的标志为你想加的内容
for(inti=0;i<4;i++)
{
htmltext.Replace("$htmlformat["+i+"]",format);
}
//----------天生htm文件------------------DD
try
{
using(StreamWritersw=newStreamWriter("寄存路径和页面名",false,System.Text.Encoding.GetEncoding("GB2312")))
{
sw.WriteLine(htmltext);
sw.Flush();
sw.Close();
}
}
catch
{
Response.Write("Thefilecouldnotbewirte:");
}
小结
用此办法能够便利的天生html文件。程序利用了是轮回交换,因而对需交换大批元素的模板速率十分快。
ASP是依赖组件的,能访问数据库的组件好多就有好多种,再有就是你微软的工具可是什么都要收钱的啊! |
|