转载

动态请求页面生成静态页

话说百度也是这样提高浏览速度的;

后台:

1   protected void btnHtml_Click(object sender, EventArgs e)  2         {  3             if (Request.QueryString["id"] != null)  4             {  5                 string NewId = Request.QueryString["id"];  6                 CJRZ.Model.Admin.LoanStrategy modeStrategy = bllNews.GetModel(int.Parse(NewId));  7                 if (modeStrategy != null)  8                 {  9                     CreatHtml cHtml = new CreatHtml(); 10                     string url = "http://" + HttpContext.Current.Request.Url.Host.ToString() + ":" + HttpContext.Current.Request.Url.Port; 11                     string AUrl = url + "/raiders/raiders_article.aspx?id=" + modeStrategy.NewID; 12                     //html页面文件名 13                     string fna = Server.MapPath("//") + "raiders//" + modeStrategy.NewTypeID + "//"; 14                     string FileName = modeStrategy.NewID + ".html"; 15                     if (cHtml.CreateList(AUrl, fna, FileName)) 16                     { 17                         modeStrategy.HtmlUrl = url + "/raiders/" + modeStrategy.NewTypeID + "/" + FileName; 18                         hlkLook.NavigateUrl = modeStrategy.HtmlUrl; 19                         if (bllNews.Update(modeStrategy)) 20                         { 21                             MessageBox.Show(this, "生成文件成功"); 22                         } 23                         else 24                         { 25                             MessageBox.Show(this, "更新数据路径失败!"); 26                         } 27                     } 28                     else 29                     { 30                         MessageBox.Show(this, "生成文件失败!"); 31                     } 32                 } 33                 else 34                 { 35                     MessageBox.Show(this, "获取新闻对象失败!"); 36                 } 37  38             } 39             else 40             { 41                 MessageBox.Show(this, "获取ID号失败!"); 42             } 43         }

前台:

1   <asp:Button ID="btnHtml" runat="server" Text="生成静态页" onclick="btnHtml_Click" Visible="false" /> 2                                    3                            <asp:HyperLink ID="hlkLook" runat="server" style=" color:Blue; font-size:14px;" Target="_blank" >查看页面</asp:HyperLink>

调用的类:

1   public class CreatHtml  2     {  3         public bool CreateList(string url, string fna,string fileName)  4         {  5             bool ok;  6             //准备生成  7             string strHtml;  8             StreamReader sr = null; //用来读取流  9             StreamWriter sw = null; //用来写文件 10             Encoding code = Encoding.GetEncoding("utf-8"); //定义编码 11  12             //构造web请求,发送请求,获取响应 13             WebRequest HttpWebRequest = null; 14             WebResponse HttpWebResponse = null; 15             HttpWebRequest = WebRequest.Create(url); 16             HttpWebResponse = HttpWebRequest.GetResponse(); 17  18             //获得流 19             sr = new StreamReader(HttpWebResponse.GetResponseStream(), code); 20             strHtml = sr.ReadToEnd(); 21  22             //写入文件 23             try 24             { 25  26                 if (!Directory.Exists(fna))  27                 { 28                     Directory.CreateDirectory(fna);  29                 } 30                 sw = new StreamWriter(fna+"//"+fileName, false, code); 31                 sw.WriteLine(strHtml); 32                 sw.Flush(); 33                 ok = true; 34             } 35             catch (Exception ex) 36             { 37                 ok = false; 38             } 39             finally 40             { 41                 if (sw != null) 42                 { 43                     sw.Close(); 44                 } 45             } 46             return ok; 47         } 48     }
正文到此结束
Loading...