Zusammenspiel data(), canFetchMore und fetchMore()
Verfasst: 9. August 2012 20:50
Ich bin auf der Suche nach jemanden, der mir ein wenig auf die Sprünge hilft und mir das Zusammenspiel zwischen QAbstractTableModel::data(), QAbstractTableModel::canFetchMore() und QAbstractTableModel::fetchMore() erklärt.
Hintergrund: Ich würde gerne eine Playlist erstellen, die ihre Informationen aus einer Ajax-Quelle bekommt, d.h. die Playlist enthält 500 Songs, wovon über die Ajax-Schnittstelle dann nur die Daten geladen werden, die auch gebraucht werden, weil Sie gerade angezeigt werden müssen.
Wenn aus meiner Klasse "data()" aufgerufen wird, dann muss ich die Daten für jede Spalte/Zeile zur Verfügung stellen bzw. über den Ajax Aufruf im Backend erfragen. Als ich das programmiert habe, wurde jedoch über das Ajax-Interface alle Informationen über alle 500 Songs abgefragt, obwohl nur ein kleiner Bruchteil aktuell davon gebraucht wird.
Wie spielt hier jetzt "canFetchMore()" und "fetchMore()" rein? Im qt-Beispiel Fetch More Example werden die Funktionen dazu benutzt, Daten von Festplatte zu lesen und stückchenweise an das Model zu verfüttern. Aber genau das will ich ja nicht. Ich will ja nicht auf Vorrat laden, sondern nur das laden, was angezeigt werden soll.
Um die Frage mal selber zu beantworten, muss mein abgeleitetes "canFetchMore()" dann immer false zurückliefern?
Danke für einen Tritt in die richtige Richtung.
Hintergrund: Ich würde gerne eine Playlist erstellen, die ihre Informationen aus einer Ajax-Quelle bekommt, d.h. die Playlist enthält 500 Songs, wovon über die Ajax-Schnittstelle dann nur die Daten geladen werden, die auch gebraucht werden, weil Sie gerade angezeigt werden müssen.
Wenn aus meiner Klasse "data()" aufgerufen wird, dann muss ich die Daten für jede Spalte/Zeile zur Verfügung stellen bzw. über den Ajax Aufruf im Backend erfragen. Als ich das programmiert habe, wurde jedoch über das Ajax-Interface alle Informationen über alle 500 Songs abgefragt, obwohl nur ein kleiner Bruchteil aktuell davon gebraucht wird.
Wie spielt hier jetzt "canFetchMore()" und "fetchMore()" rein? Im qt-Beispiel Fetch More Example werden die Funktionen dazu benutzt, Daten von Festplatte zu lesen und stückchenweise an das Model zu verfüttern. Aber genau das will ich ja nicht. Ich will ja nicht auf Vorrat laden, sondern nur das laden, was angezeigt werden soll.
Um die Frage mal selber zu beantworten, muss mein abgeleitetes "canFetchMore()" dann immer false zurückliefern?
Danke für einen Tritt in die richtige Richtung.