免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
ASP.NET生成HTML靜態(tài)頁的一個類
 
C#代碼
  1. using System;   
  2. using System.Collections.Generic;   
  3. using System.Linq;   
  4. using System.Web;   
  5. using System.Net;   
  6. using System.IO;   
  7. using System.Text;   
  8. using System.Web.UI.HtmlControls;   
  9. using System.Text.RegularExpressions;   
  10.   
  11. /// <summary>   
  12. ///CreateHtml 的摘要說明   
  13. /// </summary>   
  14. public class CreateHtml:System.Web.UI.Page   
  15. {   
  16.     public CreateHtml()   
  17.      {   
  18.         //   
  19.         //TODO: 在此處添加構(gòu)造函數(shù)邏輯   
  20.         //   
  21.      }   
  22.     /// <summary>   
  23.     /// 生成靜態(tài)頁面,生成位置是本項目下   
  24.     /// </summary>   
  25.     /// <param name="strURL">請求的URL</param>   
  26.     /// <param name="strRelPath">創(chuàng)建的路徑及文件名,路徑為相對路徑</param>   
  27.     public bool Nei_Create(string strURL, string strRelPath)   
  28.      {   
  29.         string   strFilePage;   
  30.          
  31.          strFilePage = HttpContext.Current.Server.MapPath(strRelPath);   
  32.          StreamWriter sw = null;   
  33.         //獲得aspx的靜態(tài)html   
  34.         try  
  35.          {   
  36.                
  37.             if (File.Exists(strFilePage))   
  38.              {   
  39.                  File.Delete(strFilePage);   
  40.              }   
  41.              sw = new StreamWriter(strFilePage, false, System.Text.Encoding.GetEncoding("gb2312"));   
  42.              System.Net.WebRequest wReq = System.Net.WebRequest.Create(strURL);   
  43.              System.Net.WebResponse wResp = wReq.GetResponse();   
  44.              System.IO.Stream respStream = wResp.GetResponseStream();   
  45.              System.IO.StreamReader reader = new System.IO.StreamReader(respStream, System.Text.Encoding.GetEncoding("gb2312"));   
  46.             string strTemp = reader.ReadToEnd();   
  47.   
  48.              Regex r1 = new Regex("<input type=\"hidden\" name=\"__EVENTTARGET\".*/>", RegexOptions.IgnoreCase);   
  49.              Regex r2 = new Regex("<input type=\"hidden\" name=\"__EVENTARGUMENT\".*/>", RegexOptions.IgnoreCase);   
  50.              Regex r3 = new Regex("<input type=\"hidden\" name=\"__VIEWSTATE\".*/>", RegexOptions.IgnoreCase);   
  51.   
  52.              Regex r4 = new Regex("<form .*id=\"form1\">", RegexOptions.IgnoreCase);   
  53.              Regex r5 = new Regex("</form>");   
  54.   
  55.              Regex r6 = new Regex("<input type=\"hidden\" name=\"__EVENTVALIDATION\".*/>", RegexOptions.IgnoreCase);   
  56.              strTemp = r1.Replace(strTemp, "");   
  57.              strTemp = r2.Replace(strTemp, "");   
  58.              strTemp = r3.Replace(strTemp, "");   
  59.              strTemp = r4.Replace(strTemp, "");   
  60.              strTemp = r5.Replace(strTemp, "");   
  61.              strTemp = r6.Replace(strTemp, "");   
  62.   
  63.              sw.Write(strTemp);   
  64.          }   
  65.         catch (Exception ex)   
  66.          {   
  67.              HttpContext.Current.Response.Write(ex.Message);   
  68.              HttpContext.Current.Response.End();   
  69.             return false;//生成到出錯   
  70.          }   
  71.         finally  
  72.          {   
  73.              sw.Flush();   
  74.              sw.Close();   
  75.              sw = null;   
  76.          }   
  77.   
  78.         return true;   
  79.      }   
  80.     /// <summary>   
  81.     /// 生成靜態(tài)頁面,生成位置不在本項目下   
  82.     /// </summary>   
  83.     /// <param name="strURL">請求的URL</param>   
  84.     /// <param name="strRelPath">創(chuàng)建的路徑及文件名,路徑為絕對路徑</param>   
  85.     public bool Wai_Create(string strURL, string strRelPath,string filename)   
  86.      {   
  87.         string strFilePage;   
  88.          strFilePage = strRelPath + "\\" + filename;   
  89.          StreamWriter sw = null;   
  90.         //獲得aspx的靜態(tài)html   
  91.         try  
  92.          {   
  93.             if (!Directory.Exists(strRelPath))   
  94.              {   
  95.                  Directory.CreateDirectory(strRelPath);   
  96.              }   
  97.             if (File.Exists(strFilePage))   
  98.              {   
  99.                  File.Delete(strFilePage);   
  100.              }   
  101.              sw = new StreamWriter(strFilePage, false, System.Text.Encoding.GetEncoding("gb2312"));   
  102.              System.Net.WebRequest wReq = System.Net.WebRequest.Create(strURL);   
  103.              System.Net.WebResponse wResp = wReq.GetResponse();   
  104.              System.IO.Stream respStream = wResp.GetResponseStream();   
  105.              System.IO.StreamReader reader = new System.IO.StreamReader(respStream, System.Text.Encoding.GetEncoding("gb2312"));   
  106.             string strTemp = reader.ReadToEnd();   
  107.   
  108.              Regex r1 = new Regex("<input type=\"hidden\" name=\"__EVENTTARGET\".*/>", RegexOptions.IgnoreCase);   
  109.              Regex r2 = new Regex("<input type=\"hidden\" name=\"__EVENTARGUMENT\".*/>", RegexOptions.IgnoreCase);   
  110.              Regex r3 = new Regex("<input type=\"hidden\" name=\"__VIEWSTATE\".*/>", RegexOptions.IgnoreCase);   
  111.   
  112.              Regex r4 = new Regex("<form .*id=\"form1\">", RegexOptions.IgnoreCase);   
  113.              Regex r5 = new Regex("</form>");   
  114.   
  115.              Regex r6 = new Regex("<input type=\"hidden\" name=\"__EVENTVALIDATION\".*/>", RegexOptions.IgnoreCase);   
  116.              strTemp = r1.Replace(strTemp, "");   
  117.              strTemp = r2.Replace(strTemp, "");   
  118.              strTemp = r3.Replace(strTemp, "");   
  119.              strTemp = r4.Replace(strTemp, "");   
  120.              strTemp = r5.Replace(strTemp, "");   
  121.              strTemp = r6.Replace(strTemp, "");   
  122.   
  123.              sw.Write(strTemp);   
  124.          }   
  125.         catch (Exception ex)   
  126.          {   
  127.              HttpContext.Current.Response.Write(ex.Message);   
  128.              HttpContext.Current.Response.End();   
  129.             return false;//生成到出錯   
  130.          }   
  131.         finally  
  132.          {   
  133.              sw.Flush();   
  134.              sw.Close();   
  135.              sw = null;   
  136.          }   
  137.   
  138.         return true;   
  139.   
  140.      }   
  141.     public void FilePicDelete(string path)   
  142.      {   
  143.          System.IO.FileInfo file = new System.IO.FileInfo(path);   
  144.         if (file.Exists)   
  145.              file.Delete();   
  146.      }   
  147. }  
  148. 用法:
    C#代碼
    1. new CreateHtml().Nei_Create("http://localhost:4032/new5mdn/default.aspx", "default.htm");  
    2. 最近學院網(wǎng)站要改版,于是有了這個想法,將首頁生成靜態(tài)文件,以提高訪問速度。初步想法如下(只適應(yīng)于首頁靜態(tài)文件生成):
      IIS中設(shè)置默認文檔順序為index.html,default.aspx
      然后重寫default.aspx的render方法


      protected override void Render(HtmlTextWriter writer)  
      { //這是默認的Render實現(xiàn),直接輸出到writer中
      //base.Render(writer);
      StringWriter html = new StringWriter();
      HtmlTextWriter tw = new HtmlTextWriter(html);
      //通過base.Render()方法,把生成的HTML寫入到我們定義的tw中
      base.Render(tw);
      string path = Server.MapPath("index.html");
      StreamWriter sw = new StreamWriter(path, false, System.Text.Encoding.Default);
      //寫入到文件中
      sw.Write(html.ToString());
      sw.Close();
      //寫入到writer中,以輸出頁面的HTML
      //注意,這里不能再調(diào)用base.Render(writer),會出現(xiàn)錯誤
      writer.Write(html.ToString());
      }



      這樣在每次訪問default.aspx的時候會在同目錄下生成index.html文件,而一般用戶訪問時都會直接輸入域名,如http://domain.com 這樣由于iis中的設(shè)置,用戶默認訪問到的都是index.html靜態(tài)頁面,應(yīng)該能有效提高首頁打開速度。因為首頁更新不會太快,添加了新聞或其它在首頁顯示的內(nèi)容的時候可以手動訪問一下http://domain.com/default.aspx 這個頁來重新生成index.html,或者在發(fā)布新聞后自動訪問一下default.aspx頁,這樣就能做到index.html頁內(nèi)容及時更新,這種方法應(yīng)該比outputcache更好,問題也會少。當然前提是首頁沒有各種postback事件,有登錄框倒好辦,直接把登錄框改為常規(guī)的hmtl form,用post的方式post到登錄頁。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
java讀取html
抓取和分析網(wǎng)頁的類。
C#抓取網(wǎng)頁內(nèi)容常用類
網(wǎng)站自動刷帖,刷贊,刷評論等網(wǎng)絡(luò)推廣方式的基本實現(xiàn)
aspx頁面生成靜態(tài)的HTML頁面的三種方法
過濾HTML標簽的正則表達式
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服