通用HttpRqeust事件头

建议实际开发的时候,建议在HttpRqeust事件的开始位置都加上一段代码,用于发送已经存在的常见文件:

'通用事件头,用于发送已经存在的常见文件
Dim
fl As String = "d:\web\" & e.path
If
filesys.FileExists(fl)
    Dim idx As Integer = fl.LastIndexOf(".")
    Dim ext As String  = fl.SubString(idx)
    Select Case ext
        Case ".jpg",".gif",".png",".bmp",".wmf",".js",".css" ,".html",".htm",".zip",".rar" 
            e.WriteFile(fl)
            Return
'
这里必须返回
    End
Select

End
If
'
以下是动态生成网页的代码
Select
Case e.Path
    Case "addnew.htm"
        
'
生成新增页面
    Case "tongji.htm"
        
'
生成统计页面
    Case "order.htm"
        
'
生成订购页面
    Case Else
       e.WriteString(
"
糟糕,文件未找到!")
End
Select

为了让大家专注与每一节要讲述的问题,帮助文件中很多例子是不会加上事件头的。

有的时候,文件即使已经存在,也可能需要重新生成,参考:可能出现的性能问题

对于这种情况,我们可以进行一些判断即可,排除这些特殊页面:

'通用事件头,用于发送已经存在的常见文件
Select
Case e.Path
    Case "saletj.htm","showtj.htm" '排除两个页面,由后面的代码负责处理
    Case Else '其他页面或文件如果已经存在,直接发送
       
Dim fl As String = "d:\web\" & e.path
        If filesys.FileExists(fl)
            Dim idx As Integer = fl.LastIndexOf(".")
            Dim ext As String  = fl.SubString(idx)
            Select Case ext
                Case ".jpg",".gif",".png",".bmp",".wmf",".js",".css" ,".html",".htm",".zip",".rar"
                    e.WriteFile(fl)
                    Return
'
这里必须返回
            End Select
        End
If

End
Select
'
以下是动态生成网页的代码
Select
Case e.Path
    Case "addnew.htm"
       
'
生成新增页面
    Case "saletj.htm"
       
'
生成统计页面
    Case "showtj.htm"
       
'
生成统计结果显示页面
    Case "order.htm"
       
'生成订购页面
    Case Else
       e.WriteString(
"
糟糕,文件未找到!")
End
Select

有一个问题需要特别留意:

以上面的代码为例,如果你在"d:\web"目录下保存了一个"addnew.htm"网页文件,那么系统将直接发送这个文件,而不会执行后面动态生成"addnew.htm"的代码。
如果某次你修改代码后,生成的网页始终没有变化,一般都是这个原因造成的。


本页地址:http://www.foxtable.com/mobilehelp/topics/0043.htm