1

サーバー側の処理を有効にしてdataTablejqueryプラグインを使用しています。関数を使用してfnReloadAjaxいる間、処理divが非表示になってから新しいデータが表示されるまでに2〜3秒の遅延があります。これがこの問題に関する投稿です。これは、datatableによる複数のサーバーリクエストが原因であることがわかりました。

ラジオボタンのセットの私のページonchangeイベントでは、次のように新しいデータを求めてサーバーを呼び出しています

oTable.fnReloadAjax("getCaseList?caseStatus=xxx&showValidOnly=true");

ファイアバグコンソールで、2つのリクエストが次々に行われているのがわかります

  1. GET https://localhost/getCaseList?caseStatus=xxx&showValidOnly=true&_=1363611652185
  2. GET https://localhost/getCaseList?caseStatus=xxx&showValidOnly=true&sEcho=4&iColumns=9&sColumns=&iDisplayStart=0&iDisplayLength=100&sSearch=&bRegex=false&sSearch_0=&bRegex_0=false&bSearchable_0=true&sSearch_1=&bRegex_1=false&bSearchable_1=true&sSearch_2=&bRegex_2=false&bSearchable_2=true&sSearch_3=&bRegex_3=false&bSearchable_3=true&sSearch_4=&bRegex_4=false&bSearchable_4=true&sSearch_5=&bRegex_5=false&bSearchable_5=true&sSearch_6=&bRegex_6=false&bSearchable_6=true&sSearch_7=&bRegex_7=false&bSearchable_7=true&sSearch_8=&bRegex_8=false&bSearchable_8=true&iSortingCols=1&iSortCol_0=4&sSortDir_0=desc&bSortable_0=false&bSortable_1=true&bSortable_2=true&bSortable_3=true&bSortable_4=true&bSortable_5=true&bSortable_6=true&bSortable_7=true&bSortable_8=true&_=1363611701804

処理divは最初のリクエストの完了後に非表示になりますが、新しいデータは2番目のリクエストの完了後にのみロードされます。

datatableが2回目の追加呼び出しを行うのはなぜですか?

4

2 に答える 2

1

私は同じ問題に直面しています。私の場合も、サーバー側の処理を使用しています。データテーブルが初期化された後、いくつかの列を非表示にするために以下のステートメントを書きました

tableExample.fnSetColumnVis(5, false);
tableExample.fnSetColumnVis(6, false);
tableExample.fnSetColumnVis(3, false);

そして、4回リクエストしていることに気付きました。次に、これらの行を削除すると、私の場合、複数のリクエストの問題が解決されました。それでも列を非表示にしたい場合は、datatable の列定義の列に "display:none" を設定するクラス ('sClass':'hidden') を追加する別の方法があります。

  aoColumnDefs: [
        { "bSortable": true, "aTargets": [0] },
        { "bSortable": true, "aTargets": [1] },
        { "bSortable": false, "aTargets": [2] },
        { "bSortable": true, "aTargets": [3] },
        { "bSortable": true, "aTargets": [4] },
       { "bSortable": true, "aTargets": [5], "sClass": "hidden" },
        { "bSortable": true, "aTargets": [6], "sClass": "hidden" },
        { "bSortable": false, "aTargets": [7] },
        { "bSortable": false, "aTargets": [8] },
        { "bSortable": false, "aTargets": [9], "sClass": "hidden" }         

      ]

お役に立てれば。ありがとう

于 2013-12-24T12:04:23.417 に答える