El almacén OpenSearch implementa sólo la API Read dojo.data. Consulte la siguiente documentación de referencia de la API. Esta documentación proviene del archivo dojo.data.api.Read y es genérica para todos los almacenes. La única limitación para el almacén OpenSearch es los atributos. Sólo hay un atributo definido para los elementos del almacén OpenSearch, etiquetado como content, que es el contenido del resultado de la búsqueda. Estos resultados incluyen el elemento de contenido en un canal de información Atom, el elemento de descripción en un canal de información RSS y el contenido HTML de una fila individual en los resultados de un tipo de retorno HTML.
Es una API abstracta que cumplen las implementaciones de proveedor de datos. Para obtener más información sobre las API dojo.data, visite: http://www.dojotoolkit.org/node/98
Resumen de funciones | |
---|---|
Objeto | getValue(Object item, String attribute, String defaultValue) Recupera el valor del atributo citado en el elemento dado. |
Matriz | getValues(Object item, String attribute) Recupera los valores del atributo citado en el elemento dado. |
Matriz | getAttributes(Object item) Devuelve una matriz con todos los atributos que tiene este elemento. |
Booleano | hasAttribute(Object item, String attribute) Devuelve true si el item dado tiene un valor para el attribute dado. |
Booleano | containsValue(Object item, String attribute, Object value) Devuelve true si el value dado es uno de los valores que devuelve getValues(). |
Booleano | isItem(Object something) Devuelve si *something* es un elemento y proviene de esta instancia de almacén. |
Booleano | isItemLoaded(Object something) Devuelve si *something* está cargado en la memoria local. |
void | loadItem(Object keywordArgs) Dado un elemento, este método carga el elemento para que la siguiente llamada a store.isItemLoaded(item) devuelva true. |
Objeto | fetch(Object keywordArgs) Dada una consulta y un conjunto de opciones definidas como, por ejemplo, un inicio y un recuento de los elementos que se devuelven, este método ejecuta la consulta y hace que los resultados estén disponibles como elementos de datos. |
Objeto | getFeatures() Devuelve un objeto de valor de palabra clave sencillo que especifica qué características de interfaz implementa el almacén de datos. |
void | close(Object request) Indica al almacén que cierre toda información asociada con una determinada petición. |
Serie | getLabel(Object item) Método para inspeccionar el elemento y devolver una etiqueta legible por el usuario para el elemento que proporciona una descripción general de qué es el elemento. |
Matriz | getLabelAttributes(Object item) Método para inspeccionar el elemento y devolver una matriz de los atributos del elemento que se han utilizado para generar la etiqueta, si existe alguno. |
Detalles de las funciones |
---|
Devuelve un valor de atributo individual. Devuelve defaultValue si el elemento no tiene un valor para el atributo. Devuelve null si se ha establecido null como valor de atributo. Devuelve undefined si el elemento no tiene un valor para el atributo dado, que es lo mismo que indicar que el elemento no tiene el atributo.
Especificar que un elemento x no tiene un valor para un atributo y es lo mismo que
especificar que un elemento x no tiene un atributo y. Es un oxímoron especificar que un
atributo está presente pero no tiene valores, o que el elemento tiene dicho atributo,
pero no tiene valores de atributo.
Si store.hasAttribute(item, attribute) devuelve
false, store.getValue(item, attribute) devuelve undefined.
var darthVader = store.getValue(lukeSkywalker, "father");
Este método getValues() funciona como el método getValue(), pero getValues() siempre devuelve una matriz en lugar de un valor de atributo individual. La matriz puede estar vacía, contener un valor de atributo individual o contener varios valores de atributo. Si el elemento no tiene un valor para el atributo dado, getValues() devuelve una matriz vacía: []. Si store.hasAttribute(item, attribute) devuelve false, store.getValues(item, attribute) devuelve [].
var friendsOfLuke = store.getValues(lukeSkywalker, "friends");
Devuelve una matriz con todos los atributos que tiene este elemento. Este elemento devuelve una raíz; si el elemento no tiene ningún atributo, getAttributes() devuelve una matriz vacía: [].
var array = store.getAttributes(kermit);
Devuelve true si el elemento dado tiene un valor para el atributo dado.
var trueOrFalse = store.hasAttribute(kermit, "color");
Devuelve true si el valor dado es uno de los valores que devuelve getValues().
var trueOrFalse = store.containsValue(kermit, "color", "green");
Devuelve true si el parámetro something es un elemento y proviene de la instancia de almacén. Devuelve false si el parámetro something es un literal, un elemento de otra instancia o un objeto distinto de un elemento.
var yes = store.isItem(store.newItem()); var no = store.isItem("green");
Devuelve false si isItem(something) es false. Devuelve false si isItem(something) es true pero el elemento no se ha cargado todavía en la memoria local, por ejemplo, si el elemento no se ha leído del servidor.
var yes = store.isItemLoaded(store.newItem()); var no = store.isItemLoaded("green");
Dado un elemento, este método carga el elemento para que la siguiente llamada a store.isItemLoaded(item) devuelva true. Si una llamada a isItemLoaded() devuelve true antes de llamar a loadItem(), el objeto loadItem() no funciona y no invoca los manejadores de retorno de llamada. Por lo tanto, antes de invocar este método, compruebe que no se haya cargado todavía el elemento.
{ item: object, onItem: Function, onError: Function, scope: object }
Dada una consulta y un conjunto de opciones definidas como, por ejemplo, un inicio y un recuento de los elementos que se devuelven, este método ejecuta la consulta y hace que los resultados estén disponibles como elementos de datos. El formato y las expectativas de los almacenes son que funcionen generalmente de forma asíncrona. Por lo tanto, los retornos de llamada siempre se utilizan para devolver los elementos localizados por los parámetros de la recogida.
Se devuelve un objeto de petición y se devuelve inmediatamente. La petición básica consiste en la palabra clave args que se pasa a fetch y una función adicional adjunta, abort(). Utilice el objeto de petición devuelto para cancelar una recogida. Todos los retornos de elementos de datos pasan por los retornos de llamada definidos en los parámetros de recogida y no están presentes en el objeto de petición.
Esto no significa que los almacenes personalizados no puedan añadir métodos y propiedades al objeto de petición devuelto, sólo que la API no lo necesita. Para obtener más información sobre la API de petición, consulte dojo.data.api.Request.
{ query: query-string o query-object, queryOptions: object, onBegin: Function, onItem: Function, onComplete: Function, onError: Function, scope: object, start: int count: int sort: array }
{ ignoreCase: boolean, //Determina si deben coincidir las mayúsculas y minúsculas en la consulta. El comportamiento por omisión es false. deep: boolean //Determina si una recogida realiza una búsqueda profunda de elementos y todos los elementos hijo //en lugar de sólo los elementos de nivel raíz en el almacén de datos. El valor por omisión es false. }
{ attribute: attribute || attribute-name-string, descending: true|false; // Opcional. El valor por omisión es false. }Cuando se comparan atributos, si un elemento no contiene ningún valor para el atributo (indefinido), la lógica de orden ascendente por omisión baja el elemento al final de la lista. En el caso del orden descendente, estos elementos se visualizan en la parte superior de la lista.
El método fetch() devuelve un objeto JavaScript que cumple la API definida en dojo.data.api.Request. En general, es el objeto keywordArgs que se devuelve con las funciones necesarias en Request.js adjuntas. El objetivo general es facilitar un procedimiento para que el llamante pueda terminar una recogida en curso.
El objeto de petición también puede tener propiedades adicionales cuando se devuelve, por ejemplo, la propiedad request.store, que es un puntero al objeto de almacén de datos y del que fetch() es un método.
// Captar todos los libros identificados por la consulta e invocar 'showBooks' cuando finalice var request = store.fetch({query:"all books", onComplete: showBooks}); // Captar todos los elementos del almacén e invocar 'showEverything' cuando finalice. var request = store.fetch(onComplete: showEverything); // Captar sólo 10 libros que coincidan con la consulta 'all books', empezando por el quinto libro encontrado durante la búsqueda. // Esto demuestra cómo se puede realizar la transferencia de páginas para consultas específicas. var request = store.fetch({query:"all books", start: 4, count: 10, onComplete: showBooks}); // Captar todos los elementos que coincidan con la consulta e invocar 'callback' cada vez que se encuentre un elemento. var request = store.fetch({query:"foo/bar", onItem:callback}); // Captar los primeros 100 libros del autor King; invocar showKing cuando se hayan localizado 100 elementos. var request = store.fetch({query:{author:"King"}, start: 0, count:100, onComplete: showKing}); // Localizar los libros escritos por el autor King; ordenarlos por título y editor y, a continuación, devolver los 100 primeros elementos de los elementos ordenados. var request = store.fetch({query:{author:"King"}, sort: [{ attribute: "title", descending: true}, {attribute: "publisher"}], ,start: 0, count:100, onComplete: 'showKing'}); // Captar los primeros 100 libros de autores que empiecen por el nombre King y, a continuación, invocar showKing cuando se hayan localizado 100 elementos. var request = store.fetch({query:{author:"King*"}, start: 0, count:100, onComplete: showKing}); // Captar los primeros 100 libros de autores que terminen en 'ing', pero que sólo tengan un carácter delante (King, Bing, Ling, Sing, etc.) y, a continuación, invocar showBooks cuando se hayan localizado 100 elementos. var request = store.fetch({query:{author:"?ing"}, start: 0, count:100, onComplete: showBooks}); // Captar los primeros 100 libros del autor King, donde el nombre aparezca como King, king, KING, kInG, etc. y, a continuación, invocar showKing cuando se hayan localizado 100 elementos. var request = store.fetch({query:{author:"King"}, queryOptions:(ignoreCase: true}, start: 0, count:100, onComplete: showKing}); // Transferencia de páginas: var store = new dojo.data.LargeRdbmsStore({url:"jdbc:odbc:foobar"}); var fetchArgs = { query: {type:"employees", name:"Hillary *"}, // coincidencia de serie sort: [{attribute:"department", descending:true}], start: 0, count: 20, scope: displayer, onBegin: showThrobber, onItem: displayItem, onComplete: stopThrobber, onError: handleFetchError, }; store.fetch(fetchArgs); // ... // Cuando el usuario pulsa el botón "Página siguiente" fetchArgs.start += 20; store.fetch(fetchArgs); // Obtener los siguientes 20 elementos
El método close() está diseñado para indicar al almacén que cierre toda información asociada con una determinada petición.
El método close() está diseñado para indicar al almacén que cierre toda información asociada con una determinada petición. En general, esta API espera recibir como parámetro un objeto de petición devuelto de una recogida. A continuación, cierra todo lo asociado con la petición, por ejemplo, borra las memorias caché de almacén de datos internas y cierra las conexiones 'open'. Para algunas implementaciones de almacén, esta llamada puede ser no operativa.
var request = store.fetch({onComplete: doSomething}); //... store.close(request);
Método para inspeccionar el elemento y devolver una etiqueta legible por el usuario para el elemento que proporciona una descripción general o adecuada del elemento.
En general, la mayoría de etiquetas son un valor de atributo específico o una colección de los valores de atributo que combinan el elemento con la etiqueta de alguna forma. Por ejemplo, para un elemento que representa un usuario, puede devolver la etiqueta como: nombre apellido, donde el nombre y el apellido son atributos del elemento. Si el almacén no puede determinar una etiqueta adecuada legible por el usuario, devuelve undefined. Los usuarios que deseen personalizar cómo etiqueta los elementos una instancia de almacén, pueden sustituir la función getLabel() en la instancia del almacén o ampliar el almacén y sustituir la función en la clase de extensión.
Método para inspeccionar el elemento y devolver una matriz de los atributos de elemento que se han utilizado para generar la etiqueta, si existen.
Esta función está diseñada para ayudar a los desarrolladores de interfaz de usuario a saber qué atributos de elemento pueden ignorarse cuando se visualiza el elemento. Esta situación se produce cuando la interfaz de usuario utiliza la etiqueta como identificador general para ocultar información redundante.