如何静态化网站首页
昨天白天看了一下"用div+css进行网页布局"的文章,晚上回家利用div+css做了一个网站的首页。今天就想如何能把网站的首页静态化,以加快访问速度。上网查了一下资料,在.net下有两种比较好的方法。
方法一:在页面Render的时候,自动生成网页的静态化文件。具体代码如下:
protected override void Render(HtmlTextWriter writer)//重写Render方法,生成静态文件
{
StringWriter html = new StringWriter();
HtmlTextWriter tw = new HtmlTextWriter(html);
base.Render(tw);
StreamWriter sw = new StreamWriter(Server.MapPath("default.html"), false, System.Text.Encoding.Default);
sw.Write(html.ToString());
sw.Close();
tw.Close();
Response.Write(html.ToString());
}
这种方法的缺陷是必须访问对应的动态页面的时候才能生成静态代码,但是作为网站的首页显然这种实现方法显然不太好。因为要求用户访问的是生成的静态页面,总不能每次首页的内容变了之后手动访问一下这个动态页吧。
第二种方法是利用WebClient类实现,主要代码如下:
/// <summary>
/// 得到指定url的源代码,放到指定的路径下
/// </summary>
/// <param name="strURL">url地址</param>
/// <param name="strDesPath">生成html文件目标路径</param>
private void getHTML(string strURL,string strDesPath)
{
WebRequest request = WebRequest.Create(strURL);
WebResponse response = request.GetResponse();
Stream resStream = response.GetResponseStream();
StreamReader sr = new StreamReader(resStream);
StreamWriter sw = new StreamWriter(strDesPath, false, System.Text.Encoding.Default);
sw.Write(sr.ReadToEnd());
resStream.Close();
sr.Close();
sw.Close();
}
调用时如下调用就可以了:getHTML("");
利用第二种方法。写个windows服务程序,开机自动运行,每隔指定时间自动生成首页。这样就可以实现动态首页的定时静态更新了,而且完全自动不必手工处理。
联系客服