这节讲common文件夹中缓存类(cache.class.asp)的实现。
1)实现了html缓存。
2)html模板的定时更新。
3)实现php的smarty少部分模板机制。
4)更多功能完善中......
关于asp多层体系架构的思考(2)<%
关于asp多层体系架构的思考(2)
'**********************************************************************
关于asp多层体系架构的思考(2)'
@author:jackhuclan,writen 2007-12-03,blog:http://www.cnblogs.com/jackhuclan
关于asp多层体系架构的思考(2)'
@templatePath(模板路径)
关于asp多层体系架构的思考(2)'
@cachePath(缓存路径)
关于asp多层体系架构的思考(2)'
@updateFrequency '缓存更新的频率,-1不更新,0立即更新,数字则每隔几分钟更新
关于asp多层体系架构的思考(2)'
@ifNeedUpdate 检查是否需要更新
关于asp多层体系架构的思考(2)'
**********************************************************************
关于asp多层体系架构的思考(2)

关于asp多层体系架构的思考(2)
Const ForReading = 1
关于asp多层体系架构的思考(2)
Const ForWriting = 2
关于asp多层体系架构的思考(2)
Const ForAppending=8
关于asp多层体系架构的思考(2)
Const TristateUseDefault=-2
关于asp多层体系架构的思考(2)
Const TristateTrue=-1
关于asp多层体系架构的思考(2)
Const TristateFalse=0 
关于asp多层体系架构的思考(2)
关于asp多层体系架构的思考(2)Class cache
关于asp多层体系架构的思考(2)    
private m_templatePath,m_cachePath,m_updateFrequency
关于asp多层体系架构的思考(2)    
Private m_ifNeedUpdate
关于asp多层体系架构的思考(2)    
Private fso
关于asp多层体系架构的思考(2)    
private templateHandler,cacheHandler
关于asp多层体系架构的思考(2)    
Private fileContents
关于asp多层体系架构的思考(2)    
Private lastModifyTime
关于asp多层体系架构的思考(2)
关于asp多层体系架构的思考(2)    
Sub class_initialize
关于asp多层体系架构的思考(2)        
Set fso=CreateObject("Scripting.FileSystemObject")
关于asp多层体系架构的思考(2)    
End Sub 
关于asp多层体系架构的思考(2)
关于asp多层体系架构的思考(2)    
Sub class_teminate
关于asp多层体系架构的思考(2)        
Set fso=Nothing 
关于asp多层体系架构的思考(2)    
End Sub 
关于asp多层体系架构的思考(2)
关于asp多层体系架构的思考(2)    
Public Property Get templatePath
关于asp多层体系架构的思考(2)        templatePath
=m_templatePath
关于asp多层体系架构的思考(2)    
End Property
关于asp多层体系架构的思考(2)    
关于asp多层体系架构的思考(2)    
Public Property Let templatePath(ByVal value)
关于asp多层体系架构的思考(2)        m_templatePath
=server.mappath(value) 
关于asp多层体系架构的思考(2)        
If Not fso.FileExists(m_templatePath) Then
关于asp多层体系架构的思考(2)            response.write 
"不是有效的文件格式,请重新指定要缓存的文件!"
关于asp多层体系架构的思考(2)            response.End 
关于asp多层体系架构的思考(2)        
Else
关于asp多层体系架构的思考(2)            
Set templateHandler=fso.OpenTextFile(m_templatePath,ForReading)    
关于asp多层体系架构的思考(2)            fileContents
=templateHandler.readall
关于asp多层体系架构的思考(2)            templateHandler.close
关于asp多层体系架构的思考(2)        
End If 
关于asp多层体系架构的思考(2)    
End Property
关于asp多层体系架构的思考(2)    
关于asp多层体系架构的思考(2)    
Public Property Get cachePath
关于asp多层体系架构的思考(2)        cachePath
=m_cachePath
关于asp多层体系架构的思考(2)    
End Property
关于asp多层体系架构的思考(2)    
关于asp多层体系架构的思考(2)    
Public Property Let cachePath(ByVal value)
关于asp多层体系架构的思考(2)        m_cachePath
=server.mappath(value)
关于asp多层体系架构的思考(2)        
If Not (fso.FileExists(m_cachePath)) Then 
关于asp多层体系架构的思考(2)            lastModifyTime
=Now()
关于asp多层体系架构的思考(2)        
Else
关于asp多层体系架构的思考(2)            lastModifyTime
=fso.getfile(m_cachePath).DateLastModified
关于asp多层体系架构的思考(2)        
End If 
关于asp多层体系架构的思考(2)    
End Property
关于asp多层体系架构的思考(2)    
关于asp多层体系架构的思考(2)    
Public Property Get updateFrequency
关于asp多层体系架构的思考(2)        updateFrequency
=m_updateFrequency
关于asp多层体系架构的思考(2)    
End Property
关于asp多层体系架构的思考(2)    
关于asp多层体系架构的思考(2)    
Public Property Let updateFrequency(ByVal value)
关于asp多层体系架构的思考(2)        
If IsEmpty(value) Then 
关于asp多层体系架构的思考(2)            m_updateFrequency
=-1
关于asp多层体系架构的思考(2)        
ElseIf Not IsNumeric(value) Then 
关于asp多层体系架构的思考(2)            m_updateFrequency
=-1
关于asp多层体系架构的思考(2)        
ElseIf IsNull(value) Then 
关于asp多层体系架构的思考(2)            m_updateFrequency
=-1
关于asp多层体系架构的思考(2)        
ElseIf CLng(value)>=0 Then 
关于asp多层体系架构的思考(2)            m_updateFrequency
=CLng(value)
关于asp多层体系架构的思考(2)        
Else
关于asp多层体系架构的思考(2)            m_updateFrequency
=-1
关于asp多层体系架构的思考(2)        
End If 
关于asp多层体系架构的思考(2)    
End Property 
关于asp多层体系架构的思考(2)    
关于asp多层体系架构的思考(2)    
public Property Get ifNeedUpdate
关于asp多层体系架构的思考(2)        
If m_updateFrequency=-1 Then 
关于asp多层体系架构的思考(2)            m_ifNeedUpdate
=False
关于asp多层体系架构的思考(2)        
ElseIf m_updateFrequency=0 Then 
关于asp多层体系架构的思考(2)            m_ifNeedUpdate
=True
关于asp多层体系架构的思考(2)        
ElseIf m_updateFrequency>0 Then 
关于asp多层体系架构的思考(2)            response.write lastModifyTime
&"<br>"
关于asp多层体系架构的思考(2)            response.write 
DateDiff("n",lastModifyTime,Now())&"<br>"
关于asp多层体系架构的思考(2)            response.write m_updateFrequency
&"<br>"
关于asp多层体系架构的思考(2)
关于asp多层体系架构的思考(2)            
If DateDiff("n",lastModifyTime,Now())>m_updateFrequency Then 
关于asp多层体系架构的思考(2)                m_ifNeedUpdate
=True
关于asp多层体系架构的思考(2)            
Else
关于asp多层体系架构的思考(2)                m_ifNeedUpdate
=False
关于asp多层体系架构的思考(2)            
End If 
关于asp多层体系架构的思考(2)        
Else
关于asp多层体系架构的思考(2)            m_ifNeedUpdate
=False
关于asp多层体系架构的思考(2)        
End If         
关于asp多层体系架构的思考(2)        ifNeedUpdate
=m_ifNeedUpdate    
关于asp多层体系架构的思考(2)    
End Property
关于asp多层体系架构的思考(2)    
关于asp多层体系架构的思考(2)    
Public Function AssignValue(ByVal tag,ByVal value)
关于asp多层体系架构的思考(2)        fileContents
=Replace(fileContents,tag,value)
关于asp多层体系架构的思考(2)        AssignValue
=fileContents
关于asp多层体系架构的思考(2)    
End Function 
关于asp多层体系架构的思考(2)
关于asp多层体系架构的思考(2)    
Public Sub UpdateCache()
关于asp多层体系架构的思考(2)        
If ifNeedUpdate Then 
关于asp多层体系架构的思考(2)            
Set cacheHandler=fso.OpenTextFile(m_cachePath,ForWriting,true)
关于asp多层体系架构的思考(2)            
If Err Then 
关于asp多层体系架构的思考(2)                Err.clear
关于asp多层体系架构的思考(2)                cacheHandler.close
关于asp多层体系架构的思考(2)                response.write 
"更新文件失败!"
关于asp多层体系架构的思考(2)                response.End 
关于asp多层体系架构的思考(2)            
End If 
关于asp多层体系架构的思考(2)            cacheHandler.write fileContents
关于asp多层体系架构的思考(2)            cacheHandler.close
关于asp多层体系架构的思考(2)        
End If 
关于asp多层体系架构的思考(2)    
End Sub  
关于asp多层体系架构的思考(2)
关于asp多层体系架构的思考(2)    
Public Sub display()
关于asp多层体系架构的思考(2)        
Dim f
关于asp多层体系架构的思考(2)        
Set f=fso.OpenTextFile(m_cachePath,ForReading)
关于asp多层体系架构的思考(2)        response.write f.readall()
关于asp多层体系架构的思考(2)        f.close
关于asp多层体系架构的思考(2)    
End Sub 
关于asp多层体系架构的思考(2)
End class
关于asp多层体系架构的思考(2)%
>

该类在web层中的使用。
关于asp多层体系架构的思考(2)Dim news_cache
关于asp多层体系架构的思考(2)
Dim path1:path1="/web/template/news/index.html"
关于asp多层体系架构的思考(2)
Dim path2:path2="/web/news/index.html"
关于asp多层体系架构的思考(2)
关于asp多层体系架构的思考(2)
'response.write ShowFileAccessInfo(server.mappath(path1))
关于asp多层体系架构的思考(2)

关于asp多层体系架构的思考(2)
Set news_cache=new cache
关于asp多层体系架构的思考(2)
关于asp多层体系架构的思考(2)
with news_cache
关于asp多层体系架构的思考(2)    .templatePath
=path1
关于asp多层体系架构的思考(2)    .cachePath
=path2
关于asp多层体系架构的思考(2)    .updateFrequency
=-1
关于asp多层体系架构的思考(2)    .assignValue 
"{$title}","新标题"
关于asp多层体系架构的思考(2)    .assignValue 
"{$body}","新正文"
关于asp多层体系架构的思考(2)    .updatecache 
关于asp多层体系架构的思考(2)    .display
关于asp多层体系架构的思考(2)
End with


没什么注释,大家看要耐心啊,哈哈!恳请批评和指正。

相关文章: