>웹 프론트엔드 >HTML 튜토리얼 >정적 페이지를 생성하는 다섯 가지 방법

정적 페이지를 생성하는 다섯 가지 방법

高洛峰
高洛峰원래의
2016-12-19 09:10:531231검색

정적 페이지 생성 방법에 대한 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 "";
}

이 기능을 사용하여 웹페이지 클라이언트의 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出错!");
    }

템플릿 페이지 Text.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 파일을 작성해야 합니다.

옵션 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에는 파일이 하나만 있습니다.

xml을 사용하여 데이터를 저장하고 xsl을 사용하여 템플릿을 정의하고 데이터를 생성합니다. xsl을 통해 클라이언트 또는 서비스 세그먼트에 데이터를 쉽게 표시할 수 있습니다. 정적 잎 표면을 생성하려는 경우 훨씬 더 간단합니다. 가서 .net xml 클래스 패키지의 문제를 확인하고 해결하세요.

장점: 원하는 형식과 내용으로 쉽고 빠르게 변환할 수 있습니다.
단점: 더 많은 콘텐츠를 배워야 하고 시작하기가 어렵습니다.

옵션 5:

아이디어 1:

1.

과 같은 도구를 사용하여 html 형식 템플릿을 생성하고 필요한 곳에 추가합니다. 서식 추가 특수 태그(예: $htmlformat$), 동적으로 파일을 생성할 때 코드를 사용하여 이 템플릿을 읽은 다음 프런트 데스크에서 콘텐츠 입력을 가져와 이 템플릿의 태그 위치에 추가하고 새 파일 이름을 생성하고 디스크에 쓴 다음, 관련 데이터를 데이터베이스에 씁니다.
2. 배경 코드를 사용하여 Html 파일을 하드코딩합니다. HtmlTextWriter 클래스를 사용하여 html 파일을 작성할 수 있습니다.

장점:

1. js 파일을 포함하는 방법을 사용하고 페이지 헤더와 같은 document.write() 메서드를 추가합니다. , 광고 및 기타 콘텐츠.

2. 정적 HTML 파일은 MS Windows2000의 Index Server를 사용하여 전체 텍스트 검색 엔진을 구축하고 asp.net을 사용하여 DataTable 형식으로 검색 결과를 얻을 수 있습니다. Win2000의 인덱스 서비스가 xml 파일의 내용을 찾을 수 없습니다. 데이터베이스 검색과 Index 인덱스 이중 검색을 포함한다면 이 검색 기능은 매우 강력할 것입니다.

3. 서버 부하를 저장합니다. 정적 html 파일을 요청하면 aspx 파일보다 훨씬 더 많은 서버 리소스가 절약됩니다.

단점:

아이디어 2: 하드 코딩을 사용하면 작업량이 매우 많고 HTML 코드도 많이 필요합니다. 디버깅이 어렵습니다. 또한, 하드코딩을 통해 생성된 HTML 스타일은 수정할 수 없으며, 웹사이트에서 스타일을 변경하면 다시 코딩해야 하므로 이후 단계에서 엄청난 작업량이 발생하게 됩니다.

여기서 첫 번째 아이디어가 채택되었습니다

코드 표시

1. (template.htm) 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(&#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:");
}

요약
이 방법을 사용하면 html 파일을 쉽게 생성할 수 있습니다. 이 프로그램은 루프 교체를 사용하므로 많은 수의 요소를 교체해야 하는 템플릿의 경우 매우 빠릅니다.



정적 페이지를 생성하는 5가지 방법에 대한 더 많은 관련 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.