Heim > Web-Frontend > HTML-Tutorial > Fünf Möglichkeiten, statische Seiten zu generieren

Fünf Möglichkeiten, statische Seiten zu generieren

高洛峰
Freigeben: 2016-12-19 09:10:53
Original
1241 Leute haben es durchsucht

Fünf Optionen zum Generieren statischer Seiten

Option 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 "";
}
Nach dem Login kopieren

Mit dieser Funktion können Sie den HTML-Code des Clients der Webseite abrufen und dann speichern es in eine .html-Datei umwandeln.

Option 2:

Es ist nicht schwierig, eine einzelne statische Seite zu erstellen. Schwierig ist es, die Verknüpfungen und Links zwischen den statischen Seiten aufrechtzuerhalten, insbesondere wenn die Seiten häufig aktualisiert werden , geändert oder gelöscht

Zum Beispiel sind die Seiten von Alibaba alle in HTML. Es wird geschätzt, dass die Adresszuordnungsfunktion verwendet wird. Informationen zur Adresszuordnung finden Sie unter: http://www.easewe.com/. Article/ShowArticle.aspx? Article=131

Sie können einen Blick auf diese Seite werfen und ihre „Gebots-Countdown“-Funktion analysieren: http://info.china.alibaba.com/news/subject/v1-s5011580 .html?head=top4&Bidding= home5

ASP.Net generiert statische HTML-Seiten
FileSystemObject-Objekt zum Generieren statischer Seiten, implementiert in Asp!
In .Net ist System.IO an solchen Vorgängen beteiligt
Das Folgende ist der Programmcode. Dieser Code ist nicht original!

//生成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出错!");
    }
Nach dem Login kopieren

Vorlagenseite Text.html-Code

<!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>
Nach dem Login kopieren

Wenn das Hinzufügen erfolgreich ist, wird eine Eingabeaufforderung mit der aktuellen Uhrzeit als HTML-Datei angezeigt. In tatsächlichen Anwendungen müssen Sie zuerst die Datenbank hinzufügen und dann die HTML-Datei schreiben

Option 3: Geben Sie einem Client ein Referenzbeispiel (SJ)

Seine Funktion besteht darin, den Code einer Seite auf clientseitige Weise abzurufen und ihn dann für andere Zwecke zu verwenden . Dieses Beispiel dient der direkten Ausgabe von

<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>
Nach dem Login kopieren

Option 4: Es ist dasselbe wie das Erlernen von csdn. Verwenden Sie XML zum Speichern von Daten, und die XSL-Vorlage enthält nur eine Datei.

Verwenden Sie XML zum Speichern von Daten, verwenden Sie XSL zum Definieren von Vorlagen und zum Generieren von Daten. Daten können einfach über XSL im Client- oder Servicesegment angezeigt werden. Wenn Sie eine statische Blattoberfläche erzeugen möchten, ist es noch einfacher. Überprüfen und lösen Sie das Problem des .net-XML-Klassenpakets.

Vorteile: Es kann einfach und schnell in das gewünschte Format und den gewünschten Inhalt konvertiert werden.
Nachteile: Es müssen mehr Inhalte erlernt werden, der Einstieg ist schwierig.

Option 5:

Idee 1:

1. Verwenden Sie ein Tool wie

, um eine HTML-Formatvorlage zu generieren und diese an der gewünschten Stelle hinzuzufügen Formatierung hinzufügen Spezielle Tags (z. B. $htmlformat$), beim dynamischen Generieren von Dateien, Verwenden Sie Code, um diese Vorlage zu lesen, erhalten Sie dann die Inhaltseingabe an der Rezeption, fügen Sie sie an der Tag-Position dieser Vorlage hinzu, generieren Sie einen neuen Dateinamen und Schreiben Sie es auf die Festplatte und schreiben Sie es dann auf die Festplatte. Schreiben Sie relevante Daten in die Datenbank.
2. Verwenden Sie den Hintergrundcode, um die HTML-Datei fest zu codieren. Sie können die HtmlTextWriter-Klasse verwenden, um die HTML-Datei zu schreiben.

Vorteile:

1. Sie können die Methode zum Einbinden von js-Dateien verwenden und die Methode document.write() zu allen Seiten hinzufügen , Werbung und andere Inhalte.

2. Statische HTML-Dateien können den Indexserver von MS Windows 2000 verwenden, um eine Volltextsuchmaschine zu erstellen, und asp.net verwenden, um Suchergebnisse in Form von DataTable zu erhalten. Der Indexdienst von Win2000 kann den Inhalt der XML-Datei nicht finden. Wenn es die Datenbanksuche und die Indexindex-Doppelsuche umfasst, ist diese Suchfunktion sehr leistungsstark.

3. Das Anfordern einer statischen HTML-Datei spart viel mehr Serverressourcen als eine ASPX-Datei.

Nachteile:

Idee 2: Wenn Sie Hard-Coding verwenden, ist der Arbeitsaufwand sehr hoch und erfordert viel HTML-Code. Das Debuggen ist schwierig. Darüber hinaus kann der durch harte Codierung generierte HTML-Stil nicht geändert werden. Wenn die Website den Stil ändert, muss sie neu codiert werden, was im späteren Stadium einen enormen Arbeitsaufwand mit sich bringt.

Hier wird also die erste Idee übernommen

Code anzeigen

1. Definieren Sie (template.htm) HTML-Vorlagenseite

<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>
Nach dem Login kopieren

2.asp .net-Code:

//---------------------读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(&#39;读取文件错误&#39;)</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:");
}
Nach dem Login kopieren

Zusammenfassung
Mit dieser Methode können Sie ganz einfach HTML-Dateien generieren. Das Programm verwendet die Schleifenersetzung und ist daher für Vorlagen, die eine große Anzahl von Elementen ersetzen müssen, sehr schnell.



Weitere verwandte Artikel zu fünf Möglichkeiten zum Generieren statischer Seiten finden Sie auf der chinesischen PHP-Website!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage