Wie kann ich die Datenquelle aktualisieren, ohne die Tabelle komplett neu erstellen zu müssen?
Meinen Sie, ohne eine "neue" Anweisung zu verwenden? Wenn ja, habe ich nicht hatte, dies selbst zu tun, aber ich benutze YUI oft. Ich bemerke, dass es eine deleteRows-Methode, die Sie verwenden könnten, um alle Zeilen zu löschen, 0 durch die Länge der Tabelle, und verwenden Sie dann die addRows, die ein literales Array wie Ihre und einen Index, 0, in diesem Fall nimmt.
Haben Sie das schon ausprobiert?
Edit : Werfen Sie einen Blick auf dieses Beispiel . Das, was Sie tun wollen, ist durchaus machbar. Die Tabelle wird lokal in einem bestimmten Intervall mit der setInterval-Methode aktualisiert (was nicht überraschend ist). Wenn Sie sich ansehen, was setInterval tut, können Sie sehen, dass es makeConnection auf der Instanz der Datenquelle aufruft. Die Methode hört sich an, als würde sie einen Remote-Aufruf tätigen, aber das ist nicht unbedingt der Fall.
Schauen wir uns ein paar Zeilen aus dem Beispiel an.
// Set up polling
var myCallback = {
success: myDataTable.onDataReturnInitializeTable,
failure: function() {
YAHOO.log("Polling failure", "error");
},
scope: myDataTable
}
myDataSource.setInterval(5000, null, myCallback)
die letzte Zeile könnte einmalig (oder bei Bedarf) statt in Intervallen aufgerufen werden, indem sie wie folgt umgeschrieben wird:
myDataSource.makeConnection(null, myCallBack)
die die onDataReturnInitializeTable Methode - die Sie vermutlich direkt aufrufen könnten, was sinnvoller wäre.
Wie auch immer, folgen Sie einfach dem Beispiel und nehmen Sie die Teile heraus, die Sie nicht brauchen. Letztendlich sieht es so aus, als ob die Methode onDataReturnInitializeTable der Schlüssel ist.
Ich hoffe, das hilft.