L'archivio OpenSearch implementa soltanto l'API di lettura dojo.data. Consultare la seguente documentazione di riferimento per informazioni sull'API. Tale documentazione proviene dal file dojo.data.api.Read ed è generica per tutti gli archivi. L'unica limitazione all'archivio OpenSearch è costituita dagli attributi. Per ogni voce nell'archivio OpenSearch è definito un solo attributo, denominato content, che è il contenuto di tale risultato della ricerca. Tali risultati includono l'elemento content in un feed Atom, l'elemento description in un feed RSS e il contenuto HTML di una singola riga nei risultati per un tipo di ritorno HTML.
Questa è un'API di un frammento con cui sono compatibili le implementazioni del provider di dati. Per ulteriori informazioni sulle API dojo.data, visitare il sito: http://www.dojotoolkit.org/node/98
Riepilogo funzioni | |
---|---|
Object | getValue(elemento Object, attributo String, defaultValue String) Richiama il valore dell'attributo specificato sulla voce fornita. |
Array | getValues(elemento Object, attributo String) Richiama i valori dell'attributo specificato sulla voce fornita. |
Array | getAttributes(elemento Object) Restituisce un array con tutti gli attributi che appartengono a tale voce. |
Boolean | hasAttribute(elemento Object, attributo String) Restituisce true se la voce fornita dispone di un valore per l'attributo specificato. |
Boolean | containsValue(elemento Object, attributo String, valore Object) Restituisce true se il valore fornito è uno dei possibili valori restituiti da getValues(). |
Boolean | isItem(elemento Object) Indica se *something* è una voce e proviene da questa istanza dell'archivio. |
Boolean | isItemLoaded(elemento Object) Indica se *something* è caricato nella memoria locale. |
void | loadItem(Object keywordArgs) Considerando una voce, questo metodo carica la voce in modo che una successiva chiamata a store.isItemLoaded(item) restituisca true. |
Object | fetch(Object keywordArgs) Considerata una query e una serie di opzioni definite, ad esempio l'inizio e il totale di voci da restituire, questo metodo esegue la query e rende i risultati disponibili come voci di dati. |
Object | getFeatures() Restituisce un oggetto semplice con valore di parola chiave che specifica quali funzioni dell'interfaccia implementano l'archivio dati. |
void | close(richiesta Object) Indica all'archivio di escludere (close out) le informazioni associate ad una particolare richiesta. |
Stringa | getLabel(elemento Object) Metodo per esaminare la voce e restituire un'etichetta leggibile per la voce che fornisce una descrizione generale della voce. |
Array | getLabelAttributes(elemento Object) Metodo per esaminare la voce e restituire un array degli attributi della voce utilizzati per generare la relativa etichetta, se presenti. |
Dettaglio di funzioni |
---|
Restituisce un singolo valore di attributo. Restituisce defaultValue se la voce non dispone di un valore per l'attributo. Restituisce null se null è stato impostato come valore di attributo. Restituisce undefined se la voce non dispone di un valore per l'attributo fornito, il che è uguale ad indicare che la voce non dispone dell'attributo.
Se si specifica che una voce x non dispone di un valore per un attributo y, è come se si specificasse
che una voce x non dispone dell'attributo y. È contraddittorio specificare che è presente un attributo
privo di valori o che la voce contiene tali attributo ma non contiene alcun valore di tale attributo.
Se store.hasAttribute(item, attribute) restituisce false,
store.getValue(item, attribute) restituisce undefined.
var darthVader = store.getValue(lukeSkywalker, "father");
Questo metodo getValues() funziona come il metodo getValue(), ma getValues() restituisce sempre un array anziché un singolo valore di attributo. L'array può essere vuoto, può contenere un singolo valore di attributo o diversi valori di attributo. Se la voce non dispone di un valore per l'attributo fornito, getValues() restituisce un array vuoto: []. Se store.hasAttribute(item, attribute) restituisce false, store.getValues(item, attribute) restituisce [].)
var friendsOfLuke = store.getValues(lukeSkywalker, "friends");
Restituisce un array con tutti gli attributi che appartengono a tale voce. Questo metodo restituisce un array; se la voce non dispone di attributi, getAttributes() restituisce un array vuoto: [].
var array = store.getAttributes(kermit);
Restituisce true se la voce fornita dispone di un valore per l'attributo specificato.
var trueOrFalse = store.hasAttribute(kermit, "color");
Restituisce true se il valore fornito è uno dei valori restituiti da getValues().
var trueOrFalse = store.containsValue(kermit, "colore", "verde");
Restituisce true se il parametro something è una voce e deriva dall'istanza dell'archivio. Restituisce false se il parametro something è una costante letterale, una voce proveniente da un'altra istanza di archivio o qualsiasi oggetto diverso da una voce.
var yes = store.isItem(store.newItem()); var no = store.isItem("green");
Restituisce false se isItem(something) è false. Restituisce false se isItem(something) è true ma la voce non è ancora stata caricata nella memoria locale, ad esempio se la voce non è ancora stata letta dal server.
var yes = store.isItemLoaded(store.newItem()); var no = store.isItemLoaded("green");
Considerando una voce, questo metodo carica la voce in modo che una successiva chiamata a store.isItemLoaded(item) restituisca true. Se una chiamata a isItemLoaded() restituisce true prima che venga richiamato loadItem(), l'oggetto loadItem() non completa alcun lavoro e non richiama i gestori richiamata. Di conseguenza, prima di richiamare questo metodo, verificare che la voce non sia già stata caricata.
{ item: object, onItem: Function, onError: Fuction, ambito: object }
Considerata una query e una serie di opzioni definite, ad esempio l'inizio e il totale di voci da restituire, questo metodo esegue la query e rende i risultati disponibili come voci di dati. Per quanto riguarda formato e previsioni di archivi, generalmente funzionano in modo asincrono. Di conseguenza, le richiamate vengono sempre utilizzate per restituire voci individuate dai parametri fetch.
Viene restituito immediatamente un oggetto richiesta. La richiesta di base è la parola chiave args, inoltrata per il richiamo e una ulteriore funzione associata, abort(). Utilizzare l'oggetto richiesta restituito per annullare un richiamo. Tutti i dati restituiti dalla voce vengono inoltrati tramite le richiamate definite nei parametri fetch e non sono presenti sull'oggetto richiesta.
Ciò non significa che gli archivi personalizzati non possono aggiungere metodi e proprietà all'oggetto richiesta restituito, ma soltanto che l'API non lo richiede. Per ulteriori informazioni sull'API di richiesta, consultare dojo.data.api.Request.
{ query: query-stringa o query-oggetto, queryOptions: object, onBegin: Function, onItem: Function, onComplete: Function, onError: Fuction, scope: object, start: int count: int sort: array }
{ ignoreCase: boolean, //Indica se la query corrisponde alla sensibilità al maiuscolo/minuscolo. La funzionalità predefinita è false. deep: boolean //Indica se un richiamo esegue una ricerca approfondita di voci e di ogni elemento secondario //anziché soltanto delle voci di livello principale in un archivio dati. Il valore predefinito è false. }
{ attributo: attributo || attributo-nome-stringa, decrescente: true|false; // Opzionale. Il valore predefinito è false. }Durante il confronto tra attributi, se una voce non contiene alcun valore per l'attributo (undefined), la logica di ordinamento ascendente predefinita sposta tale voce alla fine dell'elenco. Nel caso dell'ordine discendente, tali voci vengono visualizzate in cima all'elenco.
Il metodo fetch() restituisce un oggetto JavaScript conforme all'API definita in dojo.data.api.Request. In generale, è l'oggetto keywordArgs restituito con le funzioni richieste nel Request.js allegato. Lo scopo generale è fornire un modo conveniente per consentire ad un chiamante di terminare un richiamo in corso.
Quando viene restituito, l'oggetto richiesta può disporre anche di ulteriori proprietà, tra cui request.store, che è un puntatore all'oggetto archivio dati e che utilizza il metodo fetch().
// Leggere tutti i libri identificati dalla query e chiamare 'showBooks' al termine var request = store.fetch({query:"all books", onComplete: showBooks}); // Leggere tutti gli elementi nell'archivio e chiamare 'showEverything' al termine. var request = store.fetch(onComplete: showEverything); // Leggere soltanto 10 libri che corrispondono alla query "tutti i libri", iniziando dal quinto libro individuato durante la ricerca. // In tal modo viene dimostrato come eseguire il paging per query specifiche. var request = store.fetch({query:"all books", start: 4, count: 10, onComplete: showBooks}); // Leggere tutti gli elementi che corrispondono alla query, chiamando la "richiamata" ogni volta che un elemento viene riposizionato. var request = store.fetch({query:"foo/bar", onItem:callback}); // Richiama i primi 100 libri il cui autore è King; chiama showKing quando vengono individuate al massimo 100 voci. var request = store.fetch({query:{author:"King"}, start: 0, count:100, onComplete: showKing}); // Individua i libri scritti da King; li ordina per titolo ed editore e restituisce le prime 100 voci ordinate. var request = store.fetch({query:{author:"King"}, sort: [{ attribute: "title", descending: true}, {attribute: "publisher"}], ,start: 0, count:100, onComplete: 'showKing'}); // Leggere i primi 100 libri di autori iniziando con il nome King, quindi chiamare showKing quando sono stati posizionati fino a 100 elementi. var request = store.fetch({query:{author:"King*"}, start: 0, count:100, onComplete: showKing}); // Richiama i primi 100 libri per autori che terminano con 'ing', ma che presentano una sola lettera prima (King, Bing, Ling, Sing, ecc.), e quindi richiama showBooks quando vengono individuate al massimo 100 voci. var request = store.fetch({query:{author:"?ing"}, start: 0, count:100, onComplete: showBooks}); // Leggere i primi 100 llibri dell'autore King, dove il nome viene visualizzato come King, king, KING, kInG e così via, quindi chiamare showKing quando sono stati posizionati fino a 100 elementi. var request = store.fetch({query:{author:"King"}, queryOptions:(ignoreCase: true}, start: 0, count:100, onComplete: showKing}); // Paging: var store = new dojo.data.LargeRdbmsStore({url:"jdbc:odbc:foobar"}); var fetchArgs = { query: {type:"employees", name:"Hillary *"}, // stringa corrispondente ordine: [{attribute:"department", descending:true}], start: 0, count: 20, scope: displayer, onBegin: showThrobber, onItem: displayItem, onComplete: stopThrobber, onError: handleFetchError, }; store.fetch(fetchArgs); // ... // Quando l'utente preme il pulsante "Pagina successiva fetchArgs.start += 20; store.fetch(fetchArgs); // Richiama le 20 voci successive
Il metodo close() indica all'archivio di escludere (close out) le informazioni associate ad una particolare richiesta.
Il metodo close() è concepito per indicare all'archivio di escludere le informazioni associate ad una particolare richiesta. In generale, questa API prevede di richiamare come parametro un oggetto richiesta restituito da un richiamo. Chiude quindi gli elementi associati a tale richiesta, ad esempio cancellando i dati presenti nella cache dell'archivio dati interno e chiudendo le connessioni aperte. Per alcune implementazioni di archivio, questa chiamata potrebbe essere no-op.
var request = store.fetch({onComplete: doSomething}); //... store.close(request);
Metodo per esaminare la voce e restituire un'etichetta leggibile per la voce che fornisce una descrizione generale della voce.
In generale, la maggior parte di etichette sono un valore attributo specifico o una raccolta dei valori di attributo combinati per etichettare la voce. Ad esempio, per una voce che rappresenta un utente, i metodi potrebbero restituire l'etichetta come: nome cognome, dove nome e cognome sono attributi per la voce. Se l'archivio non è in grado di determinare un'etichetta adeguata, restituisce un valore indefinito. Gli utenti che intendono personalizzare il modo in cui un'istanza dell'archivio etichetta le voci possono sostituire la funzione getLabel() sulla relativa istanza dell'archivio oppure estendere l'archivio e sostituire la funzione nella classe di estensione.
Metodo per esaminare la voce e restituire un array degli attributi della voce utilizzati per generare la relativa etichetta, se presenti.
Questa funzione assiste gli sviluppatori dell'interfaccia utente, consentendo loro di individuare gli attributi che è possibile ignorare durante la visualizzazione di una voce. Questa situazione si verifica quando la UI utilizza l'etichetta come identificativo generale per nascondere informazioni ridondanti.