no veo nada en la API de lectura que proporciona acceso a lo siguiente: http://api.dojotoolkit.org/jsdoc/1.3.2/dojo.data.api.Read¿Cómo obtengo el recuento de elementos (tamaño) de un datastore de dojo?
Respuesta
El formato de los datos de cable de cualquier almacén de datos es completamente específico de la tienda. Para que pueda obtener el recuento total de elementos (y otros metadatos), se debe devolver como parte de la respuesta. Esta es la única forma de hacer paginación del lado del servidor.
Todas las tiendas he implementado esperan los datos para contener un atributo totalCount
, así:
{
identifier: 'id',
items: [
{ id: 123, name: 'aaa', ... },
{ id: 456, name: 'bbb', ... },
...
],
totalCount: 525
}
La tienda guarda esta cuando la consulta devuelve (en onComplete
). El valor luego se expone a través de un método getTotalCount()
en la tienda.
Cuando se utiliza junto con las opciones de solicitud start
y count
, esto le permite tener una buena paginación ajax ("Mostrando 1-50 de 525").
Como esto no forma parte de la API, las implementaciones centrales de la API de lectura no lo implementan. Una forma de esta técnica (similar a lo que he hecho) parece ser implementada por el dojo.data.QueryReadStore
, por lo que probablemente también pueda mirar allí.
Un ejemplo en dojocampus muestra una forma. Aquí, un parámetro fetch
sin query
devuelve todos los elementos en la tienda.
var store = new some.Datastore();
var gotItems = function(items, request){
console.log("Number of items located: " + items.length);
};
store.fetch({onComplete: gotItems});
que estaba buscando la respuesta a esta pregunta mediante el almacén JsonRest, y esto parece ser que:
En su servidor, usted debe buscar en la cabecera de la gama en la solicitud para saber qué elementos regresar. El servidor debe responder con una cabecera Content-Range para indicar cuántos están siendo devueltos artículos y cuántos existen elementos en total:
Content-Range: items 0-24/66
Desde: http://dojotoolkit.org/reference-guide/dojo/store/JsonRest.html
de dojo.data.api.Read onBegin función tiene el tamaño total del partido:
function size(size, request){
// Do whatever with the size var.
}
store.fetch({query: {}, onBegin: size, start: 0, count: 0});
a partir de este inicio rápido: http://dojotoolkit.org/reference-guide/1.7/quickstart/data/usingdatastores/faq.html#question-6-how-do-i-get-a-count-of-all-items-in-a-datastore
El siguiente código que funcionó para mí
// questionStoreReader is a pointer that points to and can read ask.json file
var questionStoreReader=new dojo.data.ItemFileReadStore({url:"ask.json"});
questionStoreReader.fetch(
{
onComplete:function(items,request) // items is an array
{
alert(items.length);// number of items in ask.json
},
})
- 1. Cómo obtengo un recuento de filas de una UITableView
- 2. ¿Cómo obtengo el tamaño de pantalla general?
- 3. ¿Cómo obtengo el recuento de filas en JDBC?
- 4. jQuery elementos de recuento niño
- 5. Obtener el recuento de elementos jQuery.each()
- 6. Oracle - ¿Cómo obtengo el tamaño real de un ROW específico?
- 7. Cómo encontrar el recuento de elementos utilizando jQuery
- 8. Obtener un recuento de elementos de índice con ElasticSearch
- 9. MPI_Recv - ¿Cómo determinar el recuento?
- 10. Cómo obtengo el tamaño de clave del certificado
- 11. Cambio dinámico de DataStore de un ComboBox
- 12. En Mongodb, ¿cómo obtengo el recuento de los resultados totales devueltos, sin el límite?
- 13. ¿Cómo obtengo el recuento de ciclos de la CPU en Win32?
- 14. ¿Cómo funciona el recuento de referencias de un puntero inteligente de recuento de referencias?
- 15. Dojo: dojo onblur events
- 16. Obtener una lista de elementos distintos y su recuento de
- 17. Cómo generar archivos de gran tamaño (PDF y CSV) utilizando AppEngine y Datastore?
- 18. Tamaño de recopilación de recuento de hibernación sin inicializar
- 19. Tamaño de elementos en QML
- 20. ¿Cómo obtengo un recuento de filas asociadas en una combinación a la izquierda en MySQL?
- 21. ¿Cómo obtengo el recuento de filas con la aplicación NHibernate QueryOver?
- 22. ¿Cómo obtengo eficientemente un subconjunto de una matriz de bytes (primeros N elementos) en C#?
- 23. MySQL "El recuento de columnas no coincide con el recuento de valores", pero el recuento CONECTA
- 24. ¿Cómo obtener el recuento de referencia de un NSObject?
- 25. ¿Cuál es la mejor manera de obtener el recuento/longitud/tamaño de un iterador?
- 26. elementos de recuento de Python en la lista
- 27. Evitar fugas de memoria en el dojo?
- 28. ¿cómo obtengo el tamaño del archivo temporal en Android?
- 29. ¿Cómo obtengo un recuento de todas las entradas de un tipo determinado almacenadas en el almacén de datos de appengine de Google?
- 30. ¿Cómo obtengo elementos únicos en esta matriz?
Con dojo.data.ItemFileReadStore que puede hacer:. myStore._getItemsArray() Longitud Pero esto es en particular a ese almacén de datos. Me pregunto cuál es la forma correcta de obtener el tamaño de la tienda. – Arlo
Este método es aún más hackish de lo que inicialmente pensé. La matriz no se inicializa hasta que se invoca fetch. Por lo tanto, debe asegurarse de buscar antes de verificar la longitud de la matriz. >>> store._getItemsArray(). Longitud >>> store.fetch() objeto de almacén = Objeto >>> store._getItemsArray(). Longitud 2 – Arlo