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
我有两个单选按钮。我对它们有 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