使用设计好的网页

前面的例子,我们都是用Foxtable动态合成网页。

动态合成的好处是:网页是“活”的,同样的页面,根据不同的用户、数据和业务逻辑,显示内容和结构可以完全不同。

我们也可以用第三方网页设计工具事先设计好网页,由Foxtable负责将网页发送给用户浏览器,代码很简单。

例如你将设计好的网页,放在"d:\web"目录及其子目录下,包括图片、js文件、css文件等等。

然后将HttpRequest事件代码设置为:

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"
            e.WriteFile(fl)
    End
Select

End
If

不到10行代码,这可能是史上最简单的架设http服务的方法。
不,这不是最简单的,很快你会看到真正简单的http服务架设方法,只需三行代码。

静态与动态

如果网页需要和动态的数据以及业务逻辑相结合,就用代码动态生成;如果网页基本不变化,就事先设计好网页,也就是静态网页,以提高效率。

同一个系统,可以同时有静态网页和动态网页,除非你明确告诉客户,否则客户并不会感受到这些页面什么不同。

例如:

Select Case e.Path
    Case ""
        e.WriteString(
"
这是根目录下的默认页面,是动态生成的")
    Case "order.htm"
        e.WriteString(
"
这是根目录下的Order.htm,这个文件并不存在,是自动生成的")
    Case "sale"
        e.WriteString(
"
这是根目录的sale子目录下的默认页面,是动态生成的")
    Case "sale\add.htm"
        e.WriteString(
"
这是根目录的sale子目录下的add.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"
                    e.WriteFile(fl)
            End Select
        Else
           
e.WriteString("好奇怪,你访问的页面不存在!")
        End
If

End
Select

有个小问题需要注意一下,e.path的路径分割符是\",不是"/"。

实际上,很难严格区分动态网页和动态网页,因为就是动态生成的网页,也需要使用不少静态的文件,例如图片、js、css等等。


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