5

我在我的 JSF 应用程序中使用 p:remoteCommand。我有 7 个不同的 p:remoteCommand 声明在 bean 中调用不同的操作。点击按钮,同时调用这 7 个远程命令。调用了 JS 函数,但有时没有执行对服务器的请求,这仅在 IE 上发生。我只在 IE 8 上测试过。

我试图检查在 AJAX 中返回的错误是什么,但我得到的只是 xhr=error、status=Unknown 和 error=undefined。

我的功能和 p:remoteCommand 如下:

function loadResult() {
    loadSmry();
    load1();
    load2();
    load3();
    load4();
    load5();
    load6();
}

<p:remoteCommand id="loadId" 
                 name="loadSmry"  
                 async="true"
                 action="#{designBean.saveSmry}"
                 process="@this"
                 onsuccess="summaryCount=0;"
                 onerror="handleXhrError(xhr, status, error)"
                 update="logId"/>   

<p:remoteCommand id="loadId1" 
                 name="load1"  
                 async="true"
                 action="#{designBean.showChrt1}"
                 onstart="showAjaxLoader('begin',1)" 
                 oncomplete="showAjaxLoader('success',1)"
                 onerror="handleXhrError(xhr, status, error)"
                 process="@this"                     
                 update="chart1" />

<p:remoteCommand id="loadId2" 
                 name="load2"  
                 async="true"
                 action="#{designBean.showChrt2}"
                 onstart="showAjaxLoaderForSummary('begin',2)" 
                 oncomplete="showAjaxLoader('success',2)"
                 onerror="handleXhrError(xhr, status, error)"
                 process="@this"                     
                 update="chart2" />


<p:remoteCommand id="loadId3" 
                 name="load3"  
                 async="true"
                 action="#{designBean.showChrt3}"
                 onstart="showAjaxLoader('begin',3)" 
                 oncomplete="showAjaxLoader('success',3)"
                 onerror="handleXhrError(xhr, status, error)"
                 process="@this"                     
                 update="chart3" />


<p:remoteCommand id="loadId4" 
                 name="load4"  
                 async="true"
                 action="#{designBean.showChrt4}"
                 onstart="showAjaxLoader('begin',4)" 
                 oncomplete="showAjaxLoader('success',4)"
                 onerror="handleXhrError(xhr, status, error)"
                 process="@this"                     
                 update="chart4" />


<p:remoteCommand id="loadId5" 
                 name="load5"  
                 async="true"
                 action="#{designBean.showChrt5}"
                 onstart="showAjaxLoader('begin',5)" 
                 oncomplete="showAjaxLoader('success',5)"
                 onerror="handleXhrError(xhr, status, error)"
                 process="@this"                     
                 update="chart5a chart5b" />

<p:remoteCommand id="loadId6" 
                 name="load6"  
                 async="true"
                 action="#{designBean.showChrt6}"
                 onstart="showAjaxLoader('begin',6)" 
                 oncomplete="showAjaxLoader('success',6)"
                 onerror="handleXhrError(xhr, status, error)"
                 process="@this"                     
                 update="chart6" />
4

1 回答 1

0

我可以看到您正在使用async="true"所有远程命令。根据 bean 的类型,这可能是有问题的。您正在尝试以异步方式执行这些命令。如果这是绝对必要的,可能回答可能无济于事,但请更改async="true"async="false". 这很可能会解决您的问题。

primefaces论坛上也报告了这个问题,这也有帮助。

于 2013-03-12T10:37:42.520 回答