来源:网络 | 2013-4-27 | (有2176人读过)
通过测试几种方法,感觉根据模板生成静态页面的方法比较快,根据网上的例子,自己做了修改,实例如下:
模板文件代码(template.htm),该代码文件可根据情况修改
<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>
以下为生成静态文件的动态asp.net文件代码
Imports System.IO
Partial Class html
Inherits System.Web.UI.Page
Sub Page_load(ByVal sender As Object, ByVal e As EventArgs)
Dim dtread As StreamReader
Dim ststring As String = ""
dtread = File.OpenText(Server.MapPath(".") + "\template\template.htm") ’vb文件所在路径或者指定的路径template.htm为模板文件
Do
ststring = ststring + dtread.ReadLine + Chr(13) ’加chr(13)的目的是生成的静态文件有换行,看代码好看
Loop Until dtread.EndOfStream = True ’这个地方采用dtread.EndOfStream = True,直到读完整个文件,这个地方网上的例子都采用dtread.readline()="",感觉这样有问题,而且绝对有问题,所以我修改为如此
dtread.Close()
’’设置模板中的变量,用指定的代码去修改,如果模版很小,且有固定的内容,可以用下代替,对于不固定的,可以在设置替换代码时,读取保存在数据库中的内容来代替,比如:文章内容,可以在保存到数据库后,再读取内容,然后付给相应的变量,再替换模板中的固定变量
Dim format(4) As String
Format(0) = "background=bg.jpg"
Format(1) = "#990099" ’;//字体颜色
Format(2) = "150px" ’;//字体大小
format(3) = "<marquee>生成的模板html页面</marquee>" ’;//文字说明
’//----------替换htm里的标记为你想加的内容
Dim i As Integer = 0
For i = 0 To 3
ststring = Replace(ststring, "$htmlformat[" + i.ToString + "]$", format(i))
Response.Write("$htmlformat[" + i.ToString + "]$")
Next
’//----------生成htm文件------------------――
Try
Dim sw As New StreamWriter(Server.MapPath(".") + "/test.htm", False, System.Text.Encoding.GetEncoding("GB2312")) ’对于路径和生成的文件名,在正式的大型网站设计中,可以通过相应的规则,比如根据now函数将生成的文件名设置为日期的值
sw.WriteLine(ststring)
sw.Flush()
sw.Close()
Catch
Response.Write("The file could not be wirte:")
End Try
End Sub
End Class
|