ASP.NETが静的ページを生成する考え方の紹介
12388 ワード
今日は静的ページの生成を検討し,学習内容を以下のように簡単に記録する.
現在、静的ページを生成する方法は大きく2つに分けられ、1つは動的ページアドレスに直接アクセスし、生成したhtmlコードを静的ページに保存することである.もう1つは、ページテンプレートを読み取り、その中で置換する必要があるコンテンツを置換することによって生成される.前の方法は簡単で、単一のページや少量のページを生成するのに実用的であり、大量のページに対して、ページ間の関連が複雑である場合、第1の方法はあまり便利ではありません.テンプレートを使用する方法はやや複雑であるが,ここでは詳細に議論せず,あまり複雑ではないプロジェクトへの第1の方法の応用のみを与える.
生成する静的ページエントリのページアドレス(例えばIndex.aspxは、href=で始まるリンクのページアドレスを検索することにより、一定のルールで置換後、静態化後のIndexを生成する.html、Index.aspxのすべてのリンクページが順次静的化され、ループされます.
次のコードの例では、ページ内の動的リンクアドレスを規則的に命名された静的アドレスに置き換える方法を示します.
このページの実行結果は次のとおりです.
元の内容:新しい内容:以上是稍微的想法,必须继续研究更多的内容学习.
現在、静的ページを生成する方法は大きく2つに分けられ、1つは動的ページアドレスに直接アクセスし、生成したhtmlコードを静的ページに保存することである.もう1つは、ページテンプレートを読み取り、その中で置換する必要があるコンテンツを置換することによって生成される.前の方法は簡単で、単一のページや少量のページを生成するのに実用的であり、大量のページに対して、ページ間の関連が複雑である場合、第1の方法はあまり便利ではありません.テンプレートを使用する方法はやや複雑であるが,ここでは詳細に議論せず,あまり複雑ではないプロジェクトへの第1の方法の応用のみを与える.
生成する静的ページエントリのページアドレス(例えばIndex.aspxは、href=で始まるリンクのページアドレスを検索することにより、一定のルールで置換後、静態化後のIndexを生成する.html、Index.aspxのすべてのリンクページが順次静的化され、ループされます.
次のコードの例では、ページ内の動的リンクアドレスを規則的に命名された静的アドレスに置き換える方法を示します.
using
System;
using
System.Collections.Generic;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Text.RegularExpressions;
namespace
WebTest
{
public
partial
class
Test : System.Web.UI.Page
{
protected
void
Page_Load(
object
sender, EventArgs e)
{
string
content
=
"
<a target=\"_blank\" href=\"Product.aspx?classId=123\"><a target=\"_blank\" href=\"Product-view.aspx\"><a target=\"_blank\" href=\"Product-view.aspx?id=59\"><a target=\"_blank\" href=\"Product-view.aspx?id=11159\">
"
;
string
newContent
=
content;
Regex rg
=
new
Regex(
"
href=
"
);
//
int
len
=
5
;
//
MatchCollection mc
=
rg.Matches(content);
foreach
(Match m
in
mc)
{
int
startIndex
=
m.Index
+
len
+
1
;
//
URL
int
endIndex
=
content.IndexOf(
"
\"
"
, m.Index
+
len
+
1
);
//
URL
string
originalURL
=
content.Substring(startIndex, endIndex
-
startIndex);
//
URL
string
newURL
=
""
;
newURL
=
originalURL.Replace(
"
.aspx?classId=
"
,
"
-class-
"
);
//
newURL
=
newURL.Replace(
"
.aspx?id=
"
,
"
-
"
);
//
newURL
=
newURL.Replace(
"
.aspx
"
,
""
);
newURL
+=
"
.html
"
;
newContent
=
newContent.Replace(originalURL
+
"
\"
"
, newURL
+
"
\"
"
);
//
URL
}
Response.Write(
string
.Format(
"
:{0}<br/> :{1}
"
, content.Replace(
"
<
"
,
"
<
"
).Replace(
"
>
"
,
"
>
"
), newContent.Replace(
"
<
"
,
"
<
"
).Replace(
"
>
"
,
"
>
"
)));
}
}
}
このページの実行結果は次のとおりです.
元の内容:新しい内容:以上是稍微的想法,必须继续研究更多的内容学习.