post 处理需要 5-10 秒时更改单选按钮的最佳方法

Best way to change radio button when the post processing takes 5-10 seconds

我有两个单选按钮。我对它们有 onclick 事件。每当有点击时,我都会做一些处理。此处理需要一些时间。

由于两个单选按钮上都有一个 onclick 事件,在处理完成之前,单选按钮不会在视觉上发生变化。

例如:如果我想从单选按钮 A 更改为单选按钮 B,则只有在处理完成后才会更改。

如何进行 post 处理,以便在视觉上更改单选按钮,并在后台运行执行 post 处理的 javascript 函数。

您可以使用 dojo/aspect and just use aspect.after 点击事件进行任何处理

使用 dojo 的 Publish/Subscribe 模型,您可以直观地更改单选按钮,并在下一行中从执行 post 处理的 onClick 处理程序发布到频道。 Dojo's Pub/Sub documentation.

如果您的流程是异步的,请考虑使用 dojo/Deferred

dojo/Deferred 将 return 承诺在异步线程完成时得到解决。

使用 setTimeOut 的解决方案将强制您指定流程的持续时间,因为您的流程迟早会解决,在 setTimeOut 中硬编码一个值,这不是一个好的选择,您有风险吗让您的用户等待更长的时间,否则您可能会在实际过程完成之前 运行 您的代码。

更多信息在这里:

http://dojotoolkit.org/reference-guide/1.10/dojo/Deferred.html#dojo-deferred