sách gpt4 ai đã đi

flash - 执行时grails在 View 中显示Flash消息

In lại 作者:行者123 更新时间:2023-12-02 14:25:37 30 4
mua khóa gpt4 Nike

在我看来,我有一个关于Flash消息的部分:




×

${flash.message}






在 View 的某个时刻,我在 Controller 中调用了一个 Action :




Controller 操作类似于:
def doAction() {
thử {
flash.message = 'Computing...'
webserviceService.compute()
flash.message = 'Computed'
redirect(action: "list")
trở lại
} catch (Exception e2) {
flash.message = 'Could not compute'
redirect(action: "list")
trở lại
}
}

当我单击 doAction按钮并成功执行 webserviceService.compute()时,我收到“已计算”消息;当发生错误时,我收到“无法计算”消息。这很好。

由于 webserviceService.compute()需要花费几秒钟的时间来执行,因此我想通知用户系统已接收到请求并正在处理该请求,否则用户可能无法正常工作并再次单击该按钮。

我添加了另一条闪存消息“Computing ...”,单击 doAction后应立即显示该消息,直到执行Web服务为止。

工作流程应如下所示:

点击 doAction->显示“正在计算...”
webserviceService.compute()已执行->“正在计算...”由“已计算”或“无法计算”替换

这里唯一的问题是“计算...”从不出现。有什么提示吗?

谢谢你的提示。我现在将表格更改为





而不是警报行,我想更改flash.message,但是Sofar我还没有找到任何有用的方法。
有人可以给我一个提示吗?

1 Câu trả lời

您对请求/响应周期的工作原理有基本的误解。基于此:

flash.message = 'Computing...'
webserviceService.compute()
flash.message = 'Computed'
redirect(action: "list")
trở lại

是什么让您认为“计算”将永远返回 View ?不会的您将必须对问题应用一些JavaScript。

您可以按照JoshDM的说明禁用该按钮,也可以使用JavaScript显示一条消息,告诉用户等待。两者都需要在提交按钮的click事件上发生。

这里也有一个Ajax解决方案,但是鉴于您当前的了解,我担心这一次只会使您的事情复杂化。

关于flash - 执行时grails在 View 中显示Flash消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14712553/

30 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com