Der OpenSearch-Speicher implementiert nur die dojo.data-API Read. Informationen zu dieser API finden Sie in der folgenden Referenzdokumentation. Diese Dokumentation stammt aus der Datei "dojo.data.api.Read" und ist generisch für alle Speicher. Die Einzige Einschränkung für den OpenSearch-Speicher gilt hinsichtlich der Attribute. Für jedes Element im OpenSearch-Speicher gibt es nur ein Attribut mit der Bezeichnung content. Es enthält den Inhalt des jeweiligen Suchergebnisses. Bei einem ATOM-Feed enthalten Ergebnisse das Element content, bei einem RSS-Feed ist es das Element description. Wenn der Rückgabetyp HTML ist, enthalten die Ergebnisse den HTML-Inhalt einzelner Zeilen.
Dies ist eine abstrakte API, an der sich die Implementierungen von Datenanbietern orientieren. Weitere Informationen zu den dojo.data-APIs finden Sie unter http://www.dojotoolkit.org/node/98.
Zusammenfassung der Funktionen | |
---|---|
Object | getValue(Object item, String attribute, String defaultValue) Ruft den Wert des benannten Attributs für das angegebene Element ab |
Array | getValues(Object item, String attribute) Ruft die Werte des benannten Attributs für das angegebene Element ab |
Array | getAttributes(Object item) Gibt ein Array mit allen Attributen dieses Elements zurück |
Boolean | hasAttribute(Object item, String attribute) Gibt true zurück, wenn item einen Wert für das angegebene attribute hat |
Boolean | containsValue(Object item, String attribute, Object value) Gibt true zurück, wenn der angegebene value einer der von getValues zurückgegebenen Werte ist |
Boolean | isItem(Object something) Gibt zurück, ob *something* ein Element ist und aus dieser Speicherinstanz stammt |
Boolean | isItemLoaded(Object something) Gibt zurück, ob *something* in den lokalen Speicher geladen wurde |
void | loadItem(Object keywordArgs) Wenn ein Element vorhanden ist, wird es von dieser Methode geladen, so dass ein nachfolgender Aufruf von store.isItemLoaded(item) true zurückgibt. |
Object | fetch(Object keywordArgs) Wenn eine Abfrage mit einer Gruppe definierter Optionen vorhanden ist, z. B. mit einem zurückzugebenden Anfangselement und einer Anzahl zurückzugebender Elemente, wird sie von dieser Methode ausgeführt. Die Ergebnisse werden als Datenelemente verfügbar gemacht. |
Object | getFeatures() Gibt ein Objekt mit einem einfachen Schlüsselwortwert zurück, das angibt, welche Schnittstellenfeatures der Datenspeicher implementiert |
void | close(Object request) Weist den Speicher an, alle Informationen im Zusammenhang mit einer bestimmten Anforderung abzuschließen |
String | getLabel(Object item) Methode für die Untersuchung des Elements und die Rückgabe einer für den Benutzer lesbaren Bezeichnung des Elements, die eine allgemeine Beschreibung des Elements enthält |
Array | getLabelAttributes(Object item) Methode für die Untersuchung des Elements und die Rückgabe eines Arrays mit den ggf. für die Generierung der Bezeichnung verwendeten Attributen des Elements |
Funktionsdetails |
---|
Gibt einen einzelnen Attributwert zurück. Gibt defaultValue zurück, wenn das Element keinen Wert für attribute hat. Wurde als Attributwert null festgelegt, wird null zurückgegeben. Wenn das Element keinen Wert für das angegebene Attribut hat oder das Attribut nicht enthält, wird undefined zurückgegeben.
Die Angabe eines Elements x ohne einen Wert für ein Attribut y ist identisch mit der Angabe eines Elements x ohne das Attribut
y. Es ist ein Widerspruch in sich, wenn das Attribut vorhanden ist, jedoch keinen Wert hat, oder
wenn ein Element ein Attribut ohne zugehörige Attributwerte hat. Falls store.hasAttribute(item, attribute)
false zurückgibt, gibt store.getValue(item, attribute) undefined zurück.
var darthVader = store.getValue(lukeSkywalker, "father");
Diese Methode getValues() funktioniert wie die Methode getValue(), gibt jedoch an Stelle eines einzelnen Attributwertes immer ein Array zurück. Das Array kann leer sein, einen einzelnen Attributwert enthalten oder mehrere Attributwerte enthalten. Wenn das Element keinen Wert für das angegebene Attribut hat, gibt getValues() ein leeres Array ([]) zurück. Falls store.hasAttribute(item, attribute) false zurückgibt, gibt store.getValues(item, attribute) [] zurück.
var friendsOfLuke = store.getValues(lukeSkywalker, "friends");
Gibt ein Array mit allen Attributen dieses Elements zurück. Wenn das Element gar keine Attribute hat, gibt getAttributes() ein leeres Array ([]) zurück.
var array = store.getAttributes(kermit);
Gibt true zurück, wenn item einen Wert für das angegebene attribute hat
var trueOrFalse = store.hasAttribute(kermit, "color");
Gibt true zurück, wenn der angegebene value einer der von getValues() zurückgegebenen Werte ist
var trueOrFalse = store.containsValue(kermit, "color", "green");
Gibt true zurück, wenn der Parameter something ein Element ist und aus der Speicherinstanz stammt. Wenn der Parameter something ein Literal, ein Element aus einer anderen Speicherinstanz oder kein Element ist, wird false zurückgegeben.
var yes = store.isItem(store.newItem()); var no = store.isItem("green");
Gibt false zurück, wenn isItem(something) falsch ist. Gibt false zurück, wenn isItem(something) true ist, das Element jedoch noch nicht in den lokalen Speicher geladen wurde (beispielsweise, weil es noch nicht vom Server gelesen wurde).
var yes = store.isItemLoaded(store.newItem()); var no = store.isItemLoaded("green");
Wenn ein Element vorhanden ist, wird es von dieser Methode geladen, so dass ein nachfolgender Aufruf von store.isItemLoaded(item) true zurückgibt. Wenn ein Aufruf von isItemLoaded() true zurückgibt, bevor loadItem() aufgerufen wurde, hat loadItem() nichts zu tun und ruft nicht die Callback-Handler auf. Prüfen Sie deshalb vor dem Aufrufen dieser Methode, ob das Element noch nicht geladen wurde.
{ item: object, onItem: Function, onError: Function, scope: object }
Wenn eine Abfrage mit einer Gruppe definierter Optionen vorhanden ist, z. B. mit einem zurückzugebenden Anfangselement und einer Anzahl zurückzugebender Elemente, wird sie von dieser Methode ausgeführt. Die Ergebnisse werden als Datenelemente verfügbar gemacht. Aufgrund ihres Formats erwarten die dojo.data-APIs, dass Datenspeicher im Allgemeinen asynchron arbeiten. Für die Rückgabe der von den Abrufparametern gefundenen Elemente werden deshalb immer Callbacks verwendet.
Es wird ein unverzüglich ein Anforderungsobjekt zurückgegeben. Die Basisanforderung besteht aus dem Schlüsselwort args, das für den Abruf übergeben wird, und der zusätzlich angefügten Funktion abort(). Sie können das zurückgegebene Anforderungsobjekt verwenden, um einen Abruf abzubrechen. Alle zurückgegebenen Datenelemente werden von den Callbacks übergeben, die in den Abrufparametern definiert und nicht im Anforderungsobjekt vorhanden sind.
Dies schließt nicht aus, dass angepasste Speicher Methoden und Eigenschaften zum zurückgegebenen Anforderungsobjekt hinzufügen. Die API erfordert jedoch nicht das Hinzufügen von Methoden und Eigenschaften. Weitere Informationen zur API Request finden Sie unter "dojo.data.api.Request".
{ query: Abfragezeichenfolge oder Abfrageobjekt queryOptions: Object, onBegin: Function, onItem: Function, onComplete: Function, onError: Function, scope: Object, start: int count: int sort: Array }
{ ignoreCase: boolean, // Gibt an, ob bei der Abfrage die Groß- und Kleinschreibung abgleichen abgeglichen wird. Das Standardverhalten ist 'false'. deep: boolean // Gibt an, ob bei einer Abfrage eine tiefe Suche (Durchsuchen aller Kindelemente und nicht nur der Elemente der // Stammverzeichnisebene eines Datenspeichers) durchgeführt werden soll. Das Standardverhalten ist false (keine tiefe Suche). }
{ attribute: attribute || Zeichenfolge mit dem Attributnamen descending: true|false; // Optional (Standardwert: false) }Wenn ein Element beim Attributvergleich keinen Wert für das Attribut enthält (undefined), stellt die Standardlogik für aufsteigende Sortierung das Element ans Ende der Liste. Bei absteigender Sortierung werden solche Elemente an den Anfang der Liste gestellt.
Die Methode fetch() gibt ein JavaScript-Objekt zurück, das mit der in dojo.data.api.Request definierten API konform ist. Im Allgemeinen handelt es sich um das Objekt keywordArgs, das mit den erforderlichen Funktionen in der angehängten Request.js zurückgegeben wird. Das Objekt soll dem Aufrufenden die Möglichkeit geben, einen laufenden Abruf ohne großen Aufwand zu beenden.
Wenn das Anforderungsobjekt zurückgegeben wird, kann es auch zusätzliche Eigenschaften haben, z. B. die Eigenschaft request.store, die ein Zeiger auf das Datenspeicherobjekt mit einer Methode fetch() ist.
// Abruf aller in der Abfrage angegebenen Bücher und anschließender Aufruf von 'showBooks' var request = store.fetch({query:"all books", onComplete: showBooks}); // Abruf aller Elemente im Speicher und anschließendes Aufrufen von 'showEverything' var request = store.fetch(onComplete: showEverything); // Abruf von nur 10 Büchern, die der Abfrage 'all books' entsprechen und beim fünften gefundenen Buch beginnen. // Dies demonstriert die Erreichung eines Seitenwechsels bei bestimmten Abfragen. var request = store.fetch({query:"all books", start: 4, count: 10, onComplete: showBooks}); // Abrufen aller Elemente, die mit der Abfrage übereinstimmen und Aufrufen von 'callback', sobald ein Element gefunden wurde. var request = store.fetch({query:"foo/bar", onItem:callback}); // Abrufen der ersten 100 Bücher vom Autor King; wenn bis zu 100 Einträge gefunden wurden, Aufrufen von showKing. var request = store.fetch({query:{author:"King"}, start: 0, count:100, onComplete: showKing}); // Nach Büchern des Autors King suchen, sie nach Titel und Herausgeber sortieren und dann die 100 ersten Einträge der sortierten Liste zurückgeben var request = store.fetch({query:{author:"King"}, sort: [{ attribute: "Titel", descending: true}, {attribute: "Herausgeber"}], ,start: 0, count:100, onComplete: 'showKing'}); // Abrufen der ersten 100 Bücher, beginnend bei Autoren mit dem Namen King; wenn bis zu 100 Einträge gefunden wurden, Aufrufen von showKing var request = store.fetch({query:{author:"King*"}, start: 0, count:100, onComplete: showKing}); // Abrufen der ersten 100 Bücher von Autoren, deren Name aus vier Buchstaben besteht und auf "ing" endet (King, Bing, Ling, Sing usw.); wenn bis zu 100 Einträge gefunden wurden, Aufrufen von showBooks. var request = store.fetch({query:{author:"?ing"}, start: 0, count:100, onComplete: showBooks}); // Abrufen der ersten 100 Bücher des Autors King, wobei der Name als King, king, KING, kInG usw. angezeigt werden kann; wenn bis zu 100 Einträge gefunden wurden, Aufrufen von showKing. var request = store.fetch({query:{author:"King"}, queryOptions:(ignoreCase: true}, start: 0, count:100, onComplete: showKing}); // Seitenwechsel: var store = new dojo.data.LargeRdbmsStore({url:"jdbc:odbc:foobar"}); var fetchArgs = { query: {type:"employees", name:"Hillary *"}, // Zeichenfolgenabgleich sort: [{attribute:"department", descending:true}], start: 0, count: 20, scope: displayer, onBegin: showThrobber, onItem: displayItem, onComplete: stopThrobber, onError: handleFetchError, }; store.fetch(fetchArgs); // ... // Wenn Benutzer die Taste für "Nächste Seite" drückt, fetchArgs.start += 20; store.fetch(fetchArgs); // die nächsten 20 Einträge abrufen
Die Methode close() soll den Speicher anweisen, alle Informationen im Zusammenhang mit einer bestimmten Anforderung abzuschließen.
Die Methode close() soll den Speicher anweisen, alle Informationen im Zusammenhang mit einer bestimmten Anforderung abzuschließen. Diese API erwartet im Allgemeinen, dass sie ein von einem Abruf zurückgegebenes Anforderungsobjekt als Parameter empfängt. Dann schließt sie alle Prozesse im Zusammenhang mit dieser Anforderung ab, indem sie beispielsweise interne Zwischenspeicher des Datenspeichers löscht und alle offenen Verbindungen schließt. Bei einigen Speicherimplementierungen kann dieser Aufruf ein Nullbefehl sein.
var request = store.fetch({onComplete: doSomething}); //... store.close(request);
Methode für die Untersuchung des Elements und die Rückgabe einer für den Benutzer lesbaren Bezeichnung des Elements, die eine allgemeine oder adäquate Beschreibung des Elements enthält
Die meisten Bezeichnungen sind im Allgemeinen ein bestimmter Attributwert oder eine Sammlung von Attributwerten, die kombiniert die Bezeichnung des Elements ergeben. Für ein Element, das einen Benutzer repräsentiert, können die Methoden beispielsweise eine Bezeichnung wie first_name last_name zurückgeben, wobei first_name und last_name Attribute des Elements sind. Wenn der Speicher keine adäquate, vom Benutzer lesbare Bezeichnung ermitteln kann, gibt er undefined zurück. Benutzer, die die Bezeichnung von Elementen durch den Speicher anpassen möchten, ersetzen die Funktion getLabel() in ihrer Instanz des Speichers oder erweitern den Speicher und ersetzen die Funktion in der Erweiterungsklasse.
Methode für die Untersuchung des Elements und die Rückgabe eines Arrays mit den ggf. für die Generierung der Bezeichnung verwendeten Attributen des Elements
Diese Funktion unterstützt UI-Entwickler, damit sie wissen, welche Attribute eines Elements bei der Anzeige des Elements ignoriert werden können. Dies ist wichtig, um redundante Informationen auszublenden, wenn die Benutzerschnittstelle die Bezeichnung als generelle ID verwendet.