Foxtable(狐表)用户栏目专家坐堂 → [求助]高级开发指南 去掉通用事件头 是否有误


  共有3009人关注过本帖树形打印复制链接

主题:[求助]高级开发指南 去掉通用事件头 是否有误

帅哥哟,离线,有人找我吗?
panyongming
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:37 积分:653 威望:0 精华:0 注册:2012/5/20 21:47:00
[求助]高级开发指南 去掉通用事件头 是否有误  发帖心情 Post By:2019/11/25 11:00:00 [只看该作者]

下面黄色底色部分是否有误?


去掉通用事件头

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

所以我们总是在HtttpRequest事件的开始位置加上代码:

'通用事件头,用于发送已经存在的常见文件
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
'以下是动态生成网页的代码
'...

这有点繁琐,实际上这个事件头可以去掉的,只需将Httprequest事件代码改为:

HttpServer.Prefixes.Add("http://*/")
HttpServer
.WebPath = "d:\web"  '指定静态文件存储位置
HttpServer
.Start()

现在HtttpRequest不需要任何代码, 当用户访问某个文件时,系统会自动判断"d:\web"目录是否存在此文件,如果存在,则自动发送此文件,否则触发HttpRequet事件。

我们只用了3行代码,这应该是史上最简单的web服务搭建方法了。

从现在开始,我们的HttpRequest事件代码将不再包括通用事件头了,我们假定你已经使用上述代码启动了Web服务。


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110810 积分:563988 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/25 11:35:00 [只看该作者]

有什么问题?

 回到顶部
帅哥哟,离线,有人找我吗?
panyongming
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:37 积分:653 威望:0 精华:0 注册:2012/5/20 21:47:00
  发帖心情 Post By:2019/11/25 12:28:00 [只看该作者]

HttpServer.Prefixes.Add("http://*/")
HttpServer
.WebPath = "d:\web"  '指定静态文件存储位置
HttpServer
.Start()

这组代码应该是用来开启HTTP服务的,不应该写在Httprequest事件代码中

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110810 积分:563988 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/25 13:39:00 [只看该作者]

嗯,是的,帮助的说法不够严谨。会产生误会,可以改为:

这有点繁琐,实际上这个事件头可以去掉的,只需将Httprequest事件代码去掉,然后启动服务代码改为:

 回到顶部