Estoy trabajando con algunos datos del gobierno publicados a través de Socrata'sSODA api.¿Existe un patrón común recomendado para memorizar llamadas ajax?
Esta API proporciona una forma de recuperar filas mediante una llamada REST. La API permite la parametrización limitada de la consulta; básicamente, puede hacer una búsqueda de texto completo, y nada más. No puedo encontrar la forma de dar forma a los datos devueltos, por ejemplo, solo devuelvo ciertas columnas de los datos.
Como resultado, básicamente solo puedo obtener todas las filas y todas las columnas de cada vista de datos. Esto está bien, supongo, pero me gustaría almacenarlo en la memoria caché - para memorizarlo para usar el término de subrayado.
¿Hay algún patrón para la memorización de llamadas ajax con jQuery?
EDITAR: Para darle una idea de lo que estoy hablando, esto es lo que estoy haciendo actualmente.
function onclick(event) {
var $t = $(event.currentTarget);
var itemId = $t.attr('data-itemid');
var url = getRestUrl(itemId);
if (typeof datacache[itemId] === "undefined") {
$.ajax({
url : url,
cache : true,
type : "GET",
dataType : "json",
error : function(xhr,status,error) {
raiseError(error);
},
success : function(response, arg2, xhr) {
datacache[itemId] = response;
doSomethingWithTheData(url, itemId);
}});
}
else {
doSomethingWithTheData(url, itemId);
}
}
// then, doSomethingWithTheData() simply references datacache[itemId]
Este parece como que es más rápido aunque no he medido. Lo que realmente quiero saber es ¿Existe un patrón común que haga algo como esto, que yo pueda emplear, para que todos los que lean el código vean inmediatamente lo que estoy haciendo?
Parece que dependería de un ** lote ** en la naturaleza de la fuente de datos. – Pointy
¿Por qué? Supongamos que los datos que vuelven son json. Quiero minimizar el uso de XHR e incluso quiero minimizar los resultados de XHR-with-cached-results. El patrón debería ser bastante simple y genérico. – Cheeso
Lo que quise decir es que depende de la "momoizabilidad" de los datos. – Pointy