0

ajax クエリが完了すると、YUI DataTable を変更したいと思います。たとえば、完了するまでに1秒から10秒かかるものを照会する4つのajaxクエリがあります。1 番目のクエリが終了したときにテーブルの構築を開始し、ajax クエリが終了するたびにテーブルを再度変更したいと考えています。一般的にこれを行うための推奨される方法はありますか?

特に、列のフォーマット方法を変更して、行の処理中に発生する可能性のあるエラーを表示したいと考えています。ただし、エラーの処理には時間がかかるため、最初にデータを表示してから後でエラーを追加することをお勧めします。

助けてくれてありがとう!

ジェイソン

4

1 に答える 1

0

複数のリクエストが列データを集約していると思います。また、テーブルが静的であると想定しています(サーバー側のページングやソートではありません)。

  1. すべてのソースからのすべての列を含めるように DataTable の列定義を設定します。
  2. 最速のクエリのサービス URL を指す DataSource を作成します。
  3. その DataSource で DataTable をインスタンス化します。
  4. 他のサービス用にさらに DataSource を作成するか、他のサービスごとに YAHOO.util.Connect.asyncRequest(...) を呼び出します。
  5. これらの各サービス リクエストのコールバックは、次の行に沿って何かを行う必要があります。

(疑似コード先)

function callback(data) {
    var recordset = myDataTable.getRecordSet(),
        records = recordset.getRecords(),
        i, len, rec;

    for (i = 0, len = records.length; i < len; ++i) {
        rec = records[i].getData(); // will return an object literal with data info
        /* match the record object to the new data and update the record object */
    }

    recordset.setRecords(records);
    myDataTable.render();
}

そのため、追加のサービスごとにレコード レベルでデータが追加され、テーブル全体の UI が更新されます。

HTH

于 2011-02-10T22:20:12.013 に答える