underscore template que backbonejs jquery backbone.js backbone-views

jquery - template - ¿Es posible detener las solicitudes de "lectura" de Backbone?



underscore js que es (3)

Ok así que aquí está lo que hice

Estoy guardando las solicitudes de recuperación en una variable

app.fetchXhr = this.model.fetch();

En mi enrutador, tengo una función que se encarga de cerrar las vistas y renderizarlas. También se encarga de desencadenar los disparadores necesarios para cada cambio de vista, pero eso no es relevante en esta pregunta.

Antes de hacer nada, esta función de enrutador ejecuta lo siguiente

//Stop pending fetch if(app.fetchXhr.readyState > 0 && app.fetchXhr.readyState < 4){ app.fetchXhr.abort(); }

espero que esto ayude

Tengo una aplicación de red troncal que tiene varias vistas. El cambio entre vistas desencadena solicitudes de Ajax para obtener diferentes colecciones. Me gustaría detener la solicitud actual de "lectura" ajax si se inicia una nueva. ¿Es posible?


Otra respuesta tardía en caso de que alguien más se tope con esto.

Terminé sobrescribiendo Backbone.sync para agregar un grupo de objetos XHR y una opción para abortar las solicitudes pendientes en la recuperación.

var sync = Backbone.sync , xhrPool = []; Backbone.sync = function(method, model, options) { options = options || {}; if (method === ''read'') { if (options.abortPending == true) { for (var i = 0; i < xhrPool.length; i++) { if (xhrPool[i][''readyState''] > 0 && xhrPool[i][''readyState''] < 4) { xhrPool[i].abort(); xhrPool.splice(i, 1); } } } // cleanup xhrPool // todo: make removal from the pool an ''always'' jqXHR callback // instead of cleanup on every read? for (var i = 0; i < xhrPool.length; i++) { if (xhrPool[i][''readyState''] === 4) { xhrPool.splice(i, 1); } } var xhr = sync(method, model, options); xhrPool.push(xhr); return xhr; } else { return sync(method, model, options); } };


Supongo que estás utilizando la columna vertebral con jQuery. Si es así, la siguiente pregunta parece proporcionarle una respuesta:

Abortar peticiones Ajax usando jQuery

La fetch la xhr troncal devuelve el xhr que están hablando, IIRC.