5

JSFアプリケーションでp:remoteCommandを使用しています。Beanで異なるアクションを呼び出すように宣言された7つの異なるp:remoteCommandがあります。ボタンをクリックすると、これらの7つのリモートコマンドが同時に呼び出されます。JS関数が呼び出されますが、サーバーへの要求が実行されていない場合があり、これはIEでのみ発生します。IE8でのみテストしました。

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 に答える