本帖最后由 willning 于 2022-11-9 17:09 编辑
在前端的“调用服务端命令”命令中,您可以通过启用高级选项中的【异步发送请求】,让服务端命令的执行不会阻断用户当前操作。这种做法通常应用于批量处理等时间较长的业务操作。这是常规操作。
在目前版本的“调用服务端命令”命令并不支持设置回调命令。那么,我们该如何及时通知当前用户,服务端的操作已经完成了呢?这个时候,我们就需要祭出活字格V8.0 Update 1新增的“服务端通知”功能了。
活字格的服务端通知基于WebSocket技术的,可以用来开发服务端向前端推送消息的功能。所以,我们只需要在调用服务端命令前订阅服务端通知,在收到该服务端命令处理完成的通知后,提取处理结果,提示给用户就好了。
不多说了,展示!
1. 为需要支持回调的服务端命令创建一个服务端通知,用参数来存储服务端命令中业务逻辑的执行结果
2. 在服务端命令中,先利用【设置变量命令】创建一个当前请求的唯一标识,最简单的方法就是使用时间戳+随机数
3. 然后使用服务端通知的【加入组】命令,将当前用户会话加入名为上一步唯一标识的组中
4. 在业务逻辑执行完成后,使用【发送服务端通知】命令,给名为本次请求唯一标识的组发送通知,在通知的参数中存放需要发还给客户端的处理结果数据
5. 调用服务端通知的【离开组】命令,推出刚才创建的组。当组里最后一个会话退出时,活字格会自动删除该组,以免浪费资源
6. 在前端调用该服务端命令前,先使用【订阅服务端通知命令】订阅第一步中创建的服务端通知,在子命令中做回调处理,如利用EL-通知命令给用户提示
7. 调用服务端命令,勾选【异步发送请求】即可
完整的Demo在这里,请随意取用:
异步调用DEMO.fgcc
(1.07 MB, 下载次数: 322)
|