我有下一个场景(简化):
我在我的 docsMB 托管 bean 中的函数:
public void saveAdvance() {
// by default, finalized is false
finalized = getFinalizedByBySlowFunction();
}
我的 xhtml 中的一个按钮:
<a4j:commandButton value="SAVE"
action="#{docsMB.saveAdvance}"
oncomplete="verifyDocs();"/>
而我的 verifyDocs 函数在同一个 xhtml 中:
<script type="text/javascript">
var verifyDocs = function(){
//alert(1);
if( #{docsMB.finalized == true} ){
#{rich:component('mpConfirmar')}.show();
}
}
</script>
这让我有问题。如果我执行我的应用程序,“finalized”总是错误的,但我意识到如果我取消注释 verifyDocs 函数中的警报,它会起作用。我认为警报为 saveAdvance 提供了“必要的”时间来完成自身。
我可以做些什么来确保 oncomplete 方法在操作完成后执行?
还是我在其他地方做错了?
非常感谢
[编辑]
如果我刷新整个页面,我会得到正确的“最终”值......