等待Ajax呈现(JSF)



我有一个PRIMEFACES对话框,其中我使用onCloseUpdate属性在对话框关闭时重新呈现对话框的所有内容。问题是,当我关闭对话框,并(快速)点击再次打开它时,我看到onCloseUpdate还没有完成重新渲染对话框的内容,并且旧内容显示半秒/秒周期。

下面是使对话框可见的命令链接:
<h:commandLink id="area1" onclick="dlg.show()">
...
</h:commandLink>

,下面是对话:

<ppctu:dialog onCloseUpdate="... here is all the component ids from the dialog content           ..."  modal="true" widgetVar="dlg">

是否有一些方法等待onCloseUpdate渲染完成?

Thanks in advance

使用同步ajax调用。同步AJAX(实际上是sajax——同步Javascript和XML)是模态的,这意味着Javascript将停止处理您的程序,直到从服务器获得结果。在处理请求时,浏览器实际上被冻结了。

function getFile(url) {
  if (window.XMLHttpRequest) {              
    AJAX=new XMLHttpRequest();              
  } else {                                  
    AJAX=new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (AJAX) {
     AJAX.open("GET", url, false); //notice the 'false' attribute                           
     AJAX.send(null);
     return AJAX.responseText;                                         
  } else {
     return false;
  }                                             
}

如果你使用jQuery,那么把async:false在你的ajax调用var fileFromServer = getFile('http://somedomain.com/somefile.txt');

相关内容

  • 没有找到相关文章

最新更新