aspについてNet静的ページの生成

10071 ワード

静的ページの生成方法:シナリオ1:
///   <summary> 
///     URL     html   
///   </summary> 
///   <param   name= "Url "> URL </param> 
///   <returns> </returns> 
public   static     string   getUrltoHtml(string   Url) 
{ 
errorMsg   =   " "; 
try 
{ 
System.Net.WebRequest   wReq   =   System.Net.WebRequest.Create(Url); 
//   Get   the   response   instance. 
System.Net.WebResponse   wResp   =wReq.GetResponse(); 
//   Read   an   HTTP-specific   property 
//if   (wResp.GetType()   ==HttpWebResponse) 
//{ 
//DateTime   updated     =((System.Net.HttpWebResponse)wResp).LastModified; 
//} 
//   Get   the   response   stream. 
System.IO.Stream   respStream     =   wResp.GetResponseStream(); 
//   Dim   reader   As   StreamReader   =   New   StreamReader(respStream) 
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   " "; 
} 


 
この関数でWebページのクライアントのhtmlコードを取得し、保存することができます.htmlファイルでいいです.シナリオ2:単一の静的ページを生成するのは難点ではなく、各静的ページ間の関連とリンクがどのように完全に維持されるかが難しい.特に、ページが頻繁に更新、修正、または削除される場合.アリババのようなページもすべてhtmlで、推定はアドレスマッピングの機能を使用しています.アドレスマッピングについては参考にしてください.http://www.easewe.com/Article/ShowArticle.aspx?article=131このページを見て、彼の「競売カウントダウン」機能を分析することができます.http://info.china.alibaba.com/news/subject/v1-s5011580.html?head=top4&Bidding=home5 ASP.Net静的HTMLページAspで実装された静的ページを生成するために使用されるFileSystemObjectオブジェクト!はい.Netにおいてこのような動作に関与するのはSystemである.IO以下はプログラムコード注:このコードはオリジナルではありません!他人コードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコードコード
   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; 


ニュースを追加するコードで注意を参照:プロジェクト名はHover
     if(Hover.Conn.WriteFilethis.Title.Text.ToString),this.Content.Text.ToString),this.Author.Text.ToString))) 
        { 
          Response.Write( "     "); 
        } 
        else 
        { 
          Response.Write( "  HTML  ! "); 
        }   
  


テンプレートページhtmlコードコードコードコードコード:
<!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.0   Transitional//EN "   > 
<HTML> 
<HEAD> 
    <title> ShowArticle </title> 
      <body> 
biaoti 
<br> 
content <br> 
author 
</body> 
</HTML> 
biaoti 
<br> 
content <br> 
author 
</body> 
</HTML>   

ヒント追加に成功すると、現在の時間をファイル名とするhtmlファイルが表示されます!上はただ渡されたいくつかのパラメータを直接HTMLファイルに書き込むだけで、実際のアプリケーションではまずデータベースを追加してからHTMLファイルスキーム3に書き込む必要があります:クライアントの参照例(SJ)にクライアントの方式であるページのコードを取得して、それから他の用途として、この例は直接出力することができます
<script> 
        var   oXmlHttp   =   new   ActiveXObject( "Microsoft.XMLHTTP "); 
        oXmlHttp.open( "GET ", "http://www.163.com ",   false); 
        oXmlHttp.send() 
        var   oStream   =   new   ActiveXObject( "ADODB.Stream "); 
        if(oStream   ==   null) 
                alert( "       ADODB.Stream. ") 
        else 
        { 
                oStream.Type=1; 
                oStream.Mode=3; 
                oStream.Open()   ; 
                oStream.Write(oXmlHttp.responseBody); 
                oStream.Position=   0; 
                oStream.Type=   2; 
                oStream.Charset= "gb2312 "; 
                var   result=   oStream.ReadText(); 
                oStream.Close(); 
                oStream   =   null; 
    var   aa   =   window.open( " ", " ") 
    document.write(result); 
                aa.document.write(result); 
        } 
</script> 

シナリオ4:csdnを学ぶのと同じです.xmlでデータを保存し、テンプレートXSLもファイルが1つしかありません.xmlを使用してデータを保存し、xslを使用してテンプレートを定義し、データを生称します.xslでは、クライアントまたはサービスセグメントにデータを表示するのに便利です.静的葉面を生成するならもっと簡単です.調べてみます.Netのxmlクラスパッケージの問題が解決しました.利点:必要なフォーマットとコンテンツに簡単に変換できます.欠点:もっと多くの内容を学ぶ必要があり、入門しにくい.方案5:構想1.Dw-Maxのようなツールでhtml形式のテンプレートを生成し、フォーマットを追加する必要がある場所に特殊なタグ($htmlformat$)を追加し、ファイルを動的に生成する際にコードでこのテンプレートを読み取り、フロントから入力した内容を取得し、このテンプレートのタグ位置に追加し、新しいファイル名を生成してディスクに書き込み、書き込み後にデータベースに関連データを書き込む.              2. バックグラウンドコードを使用してHtmlファイルをハードコーディングし、HtmlTextWriterクラスを使用してhtmlファイルを書くことができます.利点1.非常に複雑なページを作成することができ、jsファイルを含む方法でjsファイルにdocumentを加えることができる.write()メソッドは,ページヘッダ,広告などのコンテンツをすべてのページに組み込むことができる.    2. 静的htmlファイルはMS Windows 2000のIndex Serverを利用して全文検索エンジンを創立することができて、aspを利用します.NetはDataTable方式で検索結果を得ることができる.Win 2000のIndexサービスではxmlファイルの内容を検索できません.データベース検索とIndexインデックスの二重検索が含まれている場合、この検索機能は非常に強力になります.    3. サーバの負荷を節約し、aspxファイルサーバより静的htmlファイルを要求すると、リソースが大幅に節約されます.欠点の構想の2:もしハードコーディングの方式を使うならば、仕事量はとても大きくて、とても多いhtmlコードを必要とします.デバッグが困難です.また、ハードコーディングで生成されたhtmlスタイルは修正できません.ウェブサイトがスタイルを変更すると、再エンコードが必要になり、後期に大きな作業量をもたらします.そこでここでは、第1の考え方のカラムコード1を採用する.htmlテンプレートページの定義
  <html>   

  <head>   

  <title></title>   

  <meta   http-equiv= "Content-Type "   content= "text/html;   charset=gb2312 ">   

  </head>   

  <body   >   

  <table   $htmlformat[0]   height= "100% "   border= "0 "   width= "100% "   cellpadding= "10 "   cellspacing= "0 "   bgcolor= "#eeeeee "   style= "border:1px   solid   #000000 ">   

  <tr>   

  <td   width= "100% "   valign= "middle "   align= "left ">   

  <span   style= "color:   $htmlformat[1];font-size:   $htmlformat[2] ">$htmlformat[3]</span>   

  </td>   

  </tr>   

  </table>   

  </body>   

  </html>

     2.asp.Netコード://-----------------------------htmlテンプレートページをstringbuilderオブジェクトに読む---
 string[]   format=new   string[4];//   htmlyem            

  StringBuilder   htmltext=new   StringBuilder();   

  try   

  {   

   using   (StreamReader   sr   =   new   StreamReader( "              "))   

   {   

  String   line;   

  while   ((line   =   sr.ReadLine())   !=   null)   

  {   

   htmltext.Append(line);   

  }   

  sr.Close();   

   }   

  }   

  catch   

  {   

   Response.Write( "<Script>alert( '       ')</Script> ");   

  }   

  //---------------------       ------------   

  format[0]= "background= "bg.jpg " ";//       

  format[1]=   "#990099 ";//       

  format[2]= "150px ";//       

  format[3]=   "<marquee>     html  </marquee> ";//       

  //----------  htm              

  for(int   i=0;i<4;i++)   

  {   

   htmltext.Replace( "$htmlformat[ "+i+ "] ",format[i]);   

  }   

  //----------  htm  ------------------――   

  try   

  {   

   using(StreamWriter   sw=new   StreamWriter( "         ",false,System.Text.Encoding.GetEncoding( "GB2312 ")))   

  {   

   sw.WriteLine(htmltext);   

   sw.Flush();   

   sw.Close();   

  }   

  }   

  catch   

  {   

  Response.Write   ( "The   file   could   not   be   wirte: ");   

  }   


この方法でhtmlファイルを簡単に生成できます.プログラムはループ置換を使用しているため、大量の要素を置換するテンプレートに対して非常に高速です.