众所周知,用户请求一个html页比aspx页要快很多,
我们可不可以在后台把我们要发布的信息文件(aspx文件),事先全都生成静态的html页.
然后用户请求链接的就是html.首先,我想问一下上述的是否合理.
但是如何才能把aspx页发布成html页呢?(我的重点)
加载html页模版吗?
一个datagrid又是如何转变?集思广益,欢迎大家发言...
我们可不可以在后台把我们要发布的信息文件(aspx文件),事先全都生成静态的html页.
然后用户请求链接的就是html.首先,我想问一下上述的是否合理.
但是如何才能把aspx页发布成html页呢?(我的重点)
加载html页模版吗?
一个datagrid又是如何转变?集思广益,欢迎大家发言...
这样也挺快的啊!
如果转化成html的话。就象你所说的datagrid怎么办。还有其他的服务器控件怎么办啊?
是利用xml + xsl转换生成html页面在项目中的某个文件夹然后把路径指向该html页面...,
你可以考虑这种方法...
就是
开一个Process利用IE去编译它,然后再保存到指定的目录.
可就不知start了之后怎么保存它
以后运行
和HTML的速度差不多吧
而且生HTML 对于数据管理 好象也不是很方便
搜索引擎对于类似 ?a=abcdd&b=xxxx这样的URL后缀是排名靠后的,而对于.html .shtml这样的后缀是排名优先的,PR值会更高这就涉及到了网络营销的搜索优化问题了
有助于SEO
如果你想把*.aspx直接转换为*.html,那么必须得不充当服务器的程序,好难
其实你运行一个动态页面*.aspx,点上面的查看“源文件”命令,DataGrid等服务器控件也是最终转换为表格执行的
就像以前asp生成静态页面的方法!
ASP.Net生成静态HTML页!
环境:Microsoft .NET Framework SDK v1.1
OS:Windows Server 2003 中文版
ASP.Net生成静态HTML页
在Asp中实现的生成静态页用到的FileSystemObject对象!
在.Net中涉及此类操作的是System.IO
以下是程序代码 注:此代码非原创!参考别人代码
//生成HTML页
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/text.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();
}
string htmlfilename=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 = new StreamWriter(path + htmlfilename , false, code);
sw.Write(str);
sw.Flush();
}
catch(Exception ex)
{
HttpContext.Current.Response.Write(ex.Message);
HttpContext.Current.Response.End();
}
finally
{
sw.Close();
}
return true;此函数放在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代码
-------------------------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>ShowArticle</title>
<body> biaoti
<br>
content<br>
author
</body>
</HTML>
public string getUrltoHtml(string Url)
{
string str = string.Empty;
try
{
WebRequest wReq = WebRequest.Create(Url);
WebResponse wResp = wReq.GetResponse(); Stream respStream = wResp.GetResponseStream();
StreamReader reader = new StreamReader(respStream, code);
str = reader.ReadToEnd(); }
catch//(Exception ex)
{
//throw new Exception( "" + ex.Message );
}
return str;
}//写文件
public bool WriteFile(string str, string OutFile )
{ StreamWriter sw = null;
string Head = string.Empty;
// 写文件
try
{
if ( str.Length > 0 )
{
sw = new StreamWriter(OutFile , false, code);
sw.Write( str);
sw.Flush();
}
}
catch
{
}
finally
{
if ( sw != null )
sw.Close();
}
return true;
}我一直用这个方法,偶网站就是用这个办法生成主要静态页面滴,内容展示在允许的情况下(或不得已)还在用动态,但用了urlRewriter
看看 http://www.haoo.cn