以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- HttpRequest事件里的Return作用咨询 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=100558) |
-- 作者:chen3728060 -- 发布时间:2017/5/13 19:15:00 -- HttpRequest事件里的Return作用咨询 帮助里的标准Weui框架代码是
HttpRequest:
---------------------------------------------------------------
由于我不想经常打开网络管理器(速度太慢),我这样写,可以吗
①HttpRequest:
②内部函数Web_GetBasic:
--------------------------------------------------------------- 再后来我觉得打开网络管理器修改生成网页代码也太麻烦,变成
①HttpRequest: Functions.Execute("Web_Main",e)
②内部函数Web_Main: Dim e As RequestEventArgs = Args(0)
Functions.Execute("Web_GetBasic",e) \'通用事件,获取必要的文件如 css js 等
Dim wb As New weui \'引用WeUi框架 \'以下是动态生成网页的代码 End Select
③内部函数Web_GetBasic:
④内部函数Web_GetItemSmallClassName: Dim e As RequestEventArgs = Args(0) Dim pps As String = DataTables("商品档案").SQLGetComboListString("小类名称","大类名称=\'" & e.PostValues("大类名称") & "\'","小类名称") 以上3种写法,不知道有没问题,会不会有什么隐患,因为这个Return,最大的疑问点就是在这个Return上,最原始是直接在HttpRequest事件里,它可以终止了整个HttpRequest事件,HttpRequest恰恰又是个会重复响应请求的事件,对流程的控制要求非常严格,但是我抽取到内部函数以后,它就变了只终止内部函数,但是外面的整个事件还是在继续执行。这样的写法好吗?求老师给一个比较规范的方法,例如那些可以写内部函数里,那些必须外置。
[此贴子已经被作者于2017/5/13 19:20:39编辑过]
|
-- 作者:chen3728060 -- 发布时间:2017/5/13 20:53:00 -- 顶顶 |
-- 作者:chen3728060 -- 发布时间:2017/5/14 20:47:00 -- 顶一下 |
-- 作者:有点色 -- 发布时间:2017/5/15 8:01:00 -- return,只能return函数本身而已,不能影响其调用者,你这样写有问题,不能真正的实现return的功能。
你可以这样调用
Dim result As String = Functions.Execute("Web_GetBasic",e) \'你的函数返回一个值 If result = "" Then msgbox("匹配") Return "" Else msgbox("不匹配") Return "False" End If |
-- 作者:chen3728060 -- 发布时间:2017/5/15 9:47:00 -- 我看移动帮助文档,经常都是Return "" ,返回一个空白的字符串 那为啥是空白字符串,返回 True 或者 False行吗?
内部函数Web_GetBasic:
if Functions.Execute("Web_GetBasic",e) then msgbox("匹配") Else msgbox("不匹配") End If [此贴子已经被作者于2017/5/15 9:48:43编辑过]
|
-- 作者:有点蓝 -- 发布时间:2017/5/15 10:40:00 -- 可以的 |
-- 作者:chen3728060 -- 发布时间:2017/5/18 9:35:00 -- 回复:(有点蓝)可以的 我还发现一个细节,好像 e.WriteString 有终止代码的效果,这个函数执行了以后,页面就立刻返回数据,后续的代码都不执行了。是这样吗?还是代码继续执行,而后面的 e.WriteString都不输出而已? [此贴子已经被作者于2017/5/18 9:35:52编辑过]
|
-- 作者:有点色 -- 发布时间:2017/5/18 10:08:00 -- 以下是引用chen3728060在2017/5/18 9:35:00的发言:
我还发现一个细节,好像 e.WriteString 有终止代码的效果,这个函数执行了以后,页面就立刻返回数据,后续的代码都不执行了。是这样吗?还是代码继续执行,而后面的 e.WriteString都不输出而已? [此贴子已经被作者于2017/5/18 9:35:52编辑过]
e.writeString只能用一次,不能重复用,重复用后面的无效。 |