0

我想在完成 ajax 查询时修改 YUI DataTable。例如,我有 4 个 ajax 查询查询需要 1 到 10 秒才能完成的事情。我想在 1s 查询完成时开始构建表,并在每次 ajax 查询完成时再次修改表。一般有推荐的方法吗?

特别是,我想更改列的格式以显示处理行时发生的任何潜在错误。但是,错误处理缓慢,因此最好先显示数据,然后再添加错误。

非常感谢您的帮助!

杰森

4

1 回答 1

0

我假设您的多个请求正在聚合列数据。我还假设该表是静态的(不是服务器端分页或排序)。

  1. 设置 DataTable 的列定义以包括来自所有源的所有列。
  2. 创建一个指向最快查询的服务 url 的 DataSource。
  3. 使用该 DataSource 实例化 DataTable。
  4. 为其他服务创建更多数据源,或为每个其他服务调用 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();
}

所以每个额外的服务都会在 Record 级别添加数据,然后全表 UI 将被更新。

高温高压

于 2011-02-10T22:20:12.013 回答