可用模板或urlrewriter静态化
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 ""
}
方法一:使用现成的插件,比如:ISAPI_Rewrite、IIS Rewrite、ApacheHTTP服务器的mod_rewrite等,它们都是基于正则表达式解析器开发的重写引擎。它们的使用方法查看它们自带的帮助即可。
方法二:自己写的代码实现动态网页静态化,方法也有好几种:
1、创建FSO对象,利用此对象将所需的内容动态创建到文件中生成HTML页面;
2、利用模板技术,将模板中特殊代码的值替换为从表单或是数据库字段中接受过来的值 生成HTML文件;
3、使用Server.Transfer转换技术,
方法三:使用HttpWebRequest请求客户端的方式,获取返回资源,生成静态页面。一般这样只需要获取网页内容即可,其它资源可放置在服务器上,自动加载。(注:此方法缺点明显,需要大量更改匹配URL,建议慎用)
方法四:在asp中有IhttpModule接口。Ihttpmodule可以简单理解为一个可以在执行像.aspx,或者mvc中control/action前,添加我们自定义的 *** 作的东西。
我们只需要编写这么一个HttpModule就可以了,当用户第一次请求asp处理时,我们可以在ihttpmodule中拦截到这个请求,然后获取到这次请求应该返回的html代码,然后我们返回这些html给用户,并保存刚才我们获取到的html到文件内,当用户下次请求时,我们只需要直接返回我们已经保存的html文件即可
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)