ASP静态HTML(局部)生成类

本文介绍了一种利用ASP实现HTML静态化的经典方法,通过自定义类实现局部内容更新,适用于需要频繁更新局部区域的大文档。

快速导读:
ASP生成HTML静态的方法很多,类也很多,但是下面这个从Tsys CMS里面提取出的类,我个人认为是非常经典的,值得研究ASP的朋友学习和改进。

知识必备:
需要一定ASP基础,懂得ASP类(Class)的使用

适用范围:
适合html大文档需要部分更新某个局部区域的情况

代码与讲解:

以下为ASP内容:

Class Fox_TemplateClass
    Public FilePath                             '模板文件
    Private Template                            '模板暂存变量
    Public StartElement                         '元素开始标签
    Public EndElement                           '元素结束标签
    Public Value                                '插入内容

    Private Fso
    Private Fle
    Private regEx
    Private FileState                            '文件状态

    Private Sub Class_Initialize
        FileState=False
        FilePath=""
        Template=""
        StartElement=""
        EndElement=""
        Set regEx = New RegExp
            With regEx
                .Multiline = True
                .IgnoreCase = True
                .Global = True
            End With
        Set Fso = Server.CreateObject("Scripting.FileSystemObject")
    End Sub

    Private Sub class_Terminate
        FilePath=""
        Template=""
        StartElement=""
        EndElement=""
        Set regEx=Nothing
        Set Fle=Nothing
        Set Fso=Nothing
    End sub

    Private Function FilterStr(str)
        FilterStr=str
        If str="" Or IsNull(FilterStr) Then
            FilterStr=""
        Else
            FilterStr=Replace(FilterStr,"\","\\")
            FilterStr=Replace(FilterStr,"(","\(")
            FilterStr=Replace(FilterStr,")","\)")
            FilterStr=Replace(FilterStr,"*","\*")
            FilterStr=Replace(FilterStr,"?","\?")
            FilterStr=Replace(FilterStr,"{","\{")
            FilterStr=Replace(FilterStr,"}","\}")
            FilterStr=Replace(FilterStr,".","\.")
            FilterStr=Replace(FilterStr,"+","\+")
            FilterStr=Replace(FilterStr,"[","\[")
            FilterStr=Replace(FilterStr,"]","\]")
        End If
    End Function

    '//设置模板文件路径
    Public Function OpenTemplate(mFilePath)
        Set Fle=Fso.OpenTextFile(mFilePath,1)
        Template=Fle.ReadAll
        Fle.Close
        FileState=True
        FilePath=mFilePath
    End Function

    '//规换模版元素,元素标签一般格式为:"<!-元素标签-开始--><!--元素标签-结束-->",你当然也可以自义
    '//无素标签不区分大小写
    Public Function ReplaceTemplate()
        If (Not FileState) Or Template="" Or StartElement="" Or EndElement="" Then
            Exit Function
        End If
        Dim strPatrn
            strpatrn=FilterStr(StartElement) & "[\S\s]*?" & FilterStr(EndElement)
        regEx.Pattern = strPatrn
        Template=regEx.Replace(Template,StartElement & vbCrLf & Value & vbCrLf & EndElement)
    End Function

    '//保存新的模板内容
    Public Function Save()
        If (Not FileState) Then
            Exit Function
        End If
        Set Fle=Fso.OpenTextFile(FilePath,2)
        Fle.Write Template
        Fle.Close
    End Function

    '//另存模板内容
    Public Function SaveAs(mFilePath)
        If (Not FileState) Then
            Exit Function
        End If
        Set Fle=Fso.OpenTextFile(mFilePath,2,1)
        Fle.Write Template
        Fle.Close
    End Function
End Class

这个类用法比较特别,它采用手动更新方式进行,自动进行开始标签<!--Template Start-->和结束标签<!--Template End-->的识别,然后对开始标签和结束标签框定的区域进行部分更新,最后生成HTML。

用法实例: 

以下为引用的内容:

Dim TClass
Set TClass=New Fox_TemplateClass
TClass.OpenTemplate("e:/t.htm")
TClass.StartElement="<!--资源标题标识-开始-->"
TClass.EndElement="<!--资源标题标识-结束-->"
TClass.Value="这是资源标题的替换内容"
TClass.ReplaceTemplate()

TClass.StartElement="<!--资源内容-开始-->"
TClass.EndElement="<!--资源内容-结束-->"
TClass.Value="我将替换成资源的内容"
TClass.ReplaceTemplate()

TClass.Save()
TClass.SaveAs("e:/t1.htm")
Set TClass=Nothing

转载于:https://www.cnblogs.com/cosiray/archive/2009/08/22/1551948.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值