我想提高我的网站访问速度,所以想把整个网站的页面生成html文件 请教各位高手 能不能给个例子 给我看看! 谢谢!
解决方案 »
- protected internal怎么无效吗?
- 算法问题~~
- 在VS.NET 2003 里不能建立存储过程和设计表了 如何解决
- 有没有适合.Net Framework 2.0的开源论坛呢?
- 求一个关于URL的正则表达式
- 我建立这样一个过程,要返回一个SqlDataReader,但是里面的CONN连接我怎么也关闭不了,请问如何解决?谢谢!!
- 简单问题:有关DataGrid,请大家不吝赐教。
- 请求帮助,有关读数据库的简单问题,感谢!
- 问一个简单问题,谢谢
- 关于选择列的问题,大大菜鸟的问题了,高手不要笑话。
- 谁告诉我下ASP.NET MVC下怎么实现以前ASCX的效果
- IIS7.0如何配置实现一个三层架构的网站
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using LTP.Common;/// <summary>
/// staticPage 的摘要说明
/// 页面静态处理
/// </summary>
public class staticPage : Page
{
public staticPage()
{
//
// TODO: 在此处添加构造函数逻辑
//
} private DataTable dt;
//自动生成页面开始//
protected override void OnPreInit(EventArgs e)
{
try
{
string stType = Request.QueryString["type"] == null ? "main" : Request.QueryString["type"].ToString();
string stID = Request.QueryString["id"] == null ? "" : Request.QueryString["id"].ToString();
string stPath = Request.QueryString["type"] == null ? "" : Request.QueryString["type"].ToString();
string P = System.IO.Path.GetFileName((this.Page.Request.PhysicalPath.ToString()).ToLower()).Replace(".aspx", ""); string str = string.Empty;
if (stType == "main")
{
str = StringPlus.ReplaceChar(P) + ".html";
}
else
{
str = StringPlus.ReplaceChar(P) + "/JoinDetails" + stID + ".html";
}
//string str = P + ".html";
string Path = Server.MapPath(str); System.IO.FileInfo aFileInfo = new System.IO.FileInfo(Path);
if (aFileInfo.Exists)
{
TimeSpan M = System.DateTime.Now - aFileInfo.LastWriteTime;
if (M.TotalSeconds > 1)
aFileInfo.Delete();
else
Server.Transfer(str, true);
// Server.Transfer("index.html", true);
}
base.OnPreInit(e);
}
catch (Exception ex)
{
Response.Write(ex.Message.ToString());
//Public.Constant.Show(this, ex.Message.ToString());
//JS.WebError(@Page.Server.MapPath("~/index.aspx"), ex.Message.ToString(), Page.Title+" Static Error!");
}
} protected override void OnInitComplete(EventArgs e)
{
try
{ /*
DmPagekey mdKeys = new DmPagekey();
IfPagekey dfKeys = new IfPagekey();
string pageName= System.IO.Path.GetFileName((this.Page.Request.PhysicalPath.ToString()).ToLower()); mdKeys = dfKeys.GetPagekeyInfo(pageName); if (pageName.Length >= 1)
{
if (mdKeys != null)
{
Page.Title = mdKeys.pageTitle; //Description
HtmlMeta desc = new HtmlMeta();
desc.Name = "Description";
desc.Content = mdKeys.pageDescription;
if (desc != null)
{
//hhead.Controls.Add(desc);
Page.Header.Controls.Add(desc);
}
//Keyword
HtmlMeta keywords = new HtmlMeta();
keywords.Name = "keywords";
keywords.Content = mdKeys.pageKeyWords;
if (keywords != null)
{
Page.Header.Controls.Add(keywords);
}
}
}*/
}
catch (Exception ex)
{
Response.Write(ex.Message.ToString());
//Public.Constant.Show(this, ex.Message.ToString());
} base.OnInitComplete(e);
} protected override void Render(HtmlTextWriter writer)
{ try
{
string stType = Request.QueryString["type"] == null ? "main" : Request.QueryString["type"].ToString();
string stID = Request.QueryString["id"] == null ? "" : Request.QueryString["id"].ToString();
string stPath = Request.QueryString["type"] == null ? "" : Request.QueryString["type"].ToString(); string P = System.IO.Path.GetFileName((this.Page.Request.PhysicalPath.ToString()).ToLower()).Replace(".aspx", "");
//string pp = this.Page.Request.RawUrl.ToString();
string str = string.Empty;
if (stType == "main")
{
str = StringPlus.ReplaceChar(P) + ".html";
}
else
{ str = StringPlus.ReplaceChar(P) + "/JoinDetails" + stID + ".html";
}
string Path = Server.MapPath(str);
//string Path = Server.MapPath("index.html");
System.IO.StringWriter html = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter tw = new System.Web.UI.HtmlTextWriter(html);
base.Render(tw);
System.IO.StreamWriter sw = new System.IO.StreamWriter(Path, false, System.Text.Encoding.UTF8);
string Temp = html.ToString();
string s1 = "", s2 = "", s3 = "", s4 = "";
int i = 0;
int j = 0; i = Temp.IndexOf("<input type=\"hidden\" name=\"__VIEWSTATE\" id=\"__VIEWSTATE\""); if (i > 0)
{
j = Temp.IndexOf(">", i); s1 = Temp.Substring(0, i); s2 = Temp.Substring(j + 1, Temp.Length - j - 1);
}
i = s2.IndexOf("<input type=\"hidden\" name=\"__EVENTVALIDATION\" id=\"__EVENTVALIDATION\"");
if (i > 0)
{
// if __EVENTVALIDATION exist
i = s2.Remove(i).LastIndexOf("<div>");
j = s2.IndexOf("</div>", i); s3 = s2.Substring(0, i); s4 = s2.Substring(j + 6, s2.Length - j - 6);
/*
*
j = s2.IndexOf(">", i);
s3 = s2.Substring(0, i);
s4 = s2.Substring(j + 1, s2.Length - j - 1);
*/
Temp = s1 + s3 + s4;
}
else
{
Temp = s1 + s2;
} //Temp = Temp.Replace("src=\"images/", "src=\"http://www.ignworld.com/images/"); sw.Write(Temp);
sw.Close();
tw.Close();
Response.Write(Temp);
}
catch (Exception ex)
{
Response.Write(ex.Message.ToString());
}
} public void initSelection(HtmlSelect hSelect, int intCount)
{
for (int i = 1; i <= intCount; i++)
{
hSelect.Items.Add(new ListItem(i.ToString(), i.ToString()));
}
}
}
public static bool WriteFile(string strText,string strContent,string strAuthor)
{
string path = HttpContext.Current.Server.MapPath("/news/");
Encoding code = Encoding.GetEncoding("gb2312");
string temp = HttpContext.Current.Server.MapPath("/news/template.html");
StreamReader sr=null;
StreamWriter sw=null;
string str="";
try
{
sr = new StreamReader(temp, code);
str = sr.ReadToEnd();
}
catch(Exception exp)
{
HttpContext.Current.Response.Write(exp.Message);
HttpContext.Current.Response.End();
sr.Close();
} public static string getUrltoHtml(string Url)
{
errorMsg = "";
try
{
System.Net.WebRequest wReq = System.Net.WebRequest.Create(Url);
System.Net.WebResponse wResp =wReq.GetResponse();
System.IO.Stream respStream = wResp.GetResponseStream();
System.IO.StreamReader reader = new System.IO.StreamReader(respStream, System.Text.Encoding.GetEncoding("gb2312"));
return reader.ReadToEnd();
}
catch(System.Exception ex)
{
errorMsg = ex.Message ;
}
return "";
}
http://topic.csdn.net/u/20091205/11/9232ccc9-e012-4afb-98ff-db3810352af9.html