Как я могу обновить источник данных, не восстанавливая таблицу полностью?
Вы имеете в виду, не используя "новое" утверждение? Если так, мне не приходилось делать это самостоятельно, но я часто использую YUI. Я заметил, что есть метод deleteRows, который можно использовать для удаления всех строк, от 0 до длины таблицы, а затем использовать addRows, который принимает буквенный массив, такой как ваш, и индекс, в данном случае, 0.
Вы пробовали это?
Редактировать: Взгляните на этот пример . То, что вы хотите сделать, определенно можно сделать. Таблица обновляется локально с заданным интервалом, используя метод setInterval (что не удивительно). Взглянув на то, что делает setInterval, вы можете увидеть, что он вызывает makeConnection для экземпляра источника данных. Похоже, что метод делает удаленный вызов, но это не обязательно.
Давайте рассмотрим пару строк из примера.
// Set up polling
var myCallback = {
success: myDataTable.onDataReturnInitializeTable,
failure: function() {
YAHOO.log("Polling failure", "error");
},
scope: myDataTable
}
myDataSource.setInterval(5000, null, myCallback)
последняя строка может быть вызвана один раз (или по требованию, как вам нужно), а не с интервалом, переписав ее так:
myDataSource.makeConnection(null, myCallBack)
, который вызывает onDataReturnInitializeTable метод, который, я думаю, вы могли бы вызвать напрямую, что имело бы больше смысла.
В любом случае, просто следуйте примеру и выньте части, которые вам не нужны. В конечном счете, похоже, что метод onDataReturnInitializeTable является ключевым.
Надеюсь, это поможет.