静的ページを生成する方法に関する 5 つのオプション
オプション 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:
単一の静的ページを生成するのは難しくありません。特に、ページが頻繁に更新、変更、削除される場合に、各静的ページ間の関連付けとリンクを維持する方法が重要です。 Alibaba ページはすべて 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 に含まれます
以下はプログラム コードです 注: このコードはオリジナルではありません
//生成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出错!"); }
<!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>
オプション 3: クライアント参照 (SJ) の例を示します
その機能は、クライアントの方法で特定のページのコードを取得することです。この例では、直接出力されます
<script> var oXmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); oXmlHttp.open("GET","http://www.webjx.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:
1.
などのツールを使用して HTML 形式でテンプレートを生成し、書式設定を追加する必要がある特別なタグ ($htmlformat$ など) を追加し、動的にコード読み取りを使用します。ファイルの生成 このテンプレートを取得し、フロント デスクによって入力されたコンテンツを取得し、このテンプレートのマークされた位置に追加し、新しいファイル名を生成してディスクに書き込み、関連するデータをデータベースに書き込みます。
2. バックグラウンド コードを使用して HTML ファイルをハードコーディングします。HtmlTextWriter クラスを使用して HTML ファイルを作成できます。利点:
1. js ファイルをインクルードし、document.write() メソッドを js ファイルに追加する方法を使用して、ページヘッダーや広告などのコンテンツをすべてに追加することで、非常に複雑なページを作成できます。ページ。
2. 静的 HTML ファイルは、MS Windows2000 のインデックス サーバーを使用して全文検索エンジンを構築し、asp.net を使用して DataTable の形式で検索結果を取得できます。 Win2000 の Index サービスが XML ファイルの内容を見つけることができません。データベース検索と索引索引二重検索が含まれている場合、この検索機能は非常に強力になります。
3. サーバーの負荷を節約します。静的 HTML ファイルをリクエストすると、aspx ファイルよりも多くのサーバー リソースが節約されます。
デメリット:
アイデア 2: ハードコーディングを使用する場合、作業負荷が非常に大きくなり、大量の HTML コードが必要になります。デバッグは難しいです。また、ハードコーディングで生成されたHTMLスタイルは変更することができず、Webサイトでスタイルを変更した場合には再コーディングする必要があり、後々の作業負担が大きくなります。
そこで最初のアイデアが採用されます
コードを表示
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="/blog/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 ファイルを生成するのに便利です。このプログラムはループ置換を使用するため、多数の要素を置換する必要があるテンプレートの場合は非常に高速です。