2011-11-14 23 views
6

Estoy creando algunos complementos que usan ajax para recuperar la información de la página. Ahora hay diferentes complementos que hacen diferentes funciones.Puede agregar prioridades a las llamadas AJAX

Todos los complementos deben ser utilizados como independientes, pero también quiero agregar la funcionalidad de que pueden funcionar bien juntos.

Todos los diferentes complementos tienen su propio archivo JavaScript y funciones. Esto no es un problema en términos de solicitudes HTTP, porque la mayoría de las personas tiene complementos que combinan todos los archivos en uno cuando se deplyan el sitio web.

-

Ahora para mi pregunta. Como digo, los diferentes complementos obtienen diferentes partes del sitio web. Por ejemplo, recuentos de publicaciones, tweets de usuarios, estadísticas de usuarios, comentarios de publicaciones.

Ahora puedo especificar la prioridad a la que se llama esta información desde el sitio web. No puedo fusionarlos a todos en una llamada ajax, creo, porque todos son componentes de trabajo individuales.

Alguien sabe una buena solución como puedo spicify obtener primero los comentarios, después de que las estadísticas, etc, etc.

Mi JS marco de elección es jQuery.

+1

Debe utilizar las funciones de devolución de llamada en la petición Ajax – fliptheweb

+0

Qué quieres decir. –

Respuesta

5

Un método general sería implementar una cola de prioridad para las llamadas AJAX pendientes. Cada complemento colocaría su llamada en la cola, con una prioridad asociada a la llamada, y un procesador de cola AJAX funcionaría a través de la cola en orden de prioridad.

He aquí un ejemplo de un plugin cola de prioridad jQuery:

http://benalman.com/code/projects/jquery-message-queuing/docs/files/jquery-ba-jqmq-js.html

Además, aquí hay uno que ya implementado para peticiones AJAX:

Sequencing ajax requests

+0

Gracias, leeré a través de los enlaces. Ya estaba pensando en una cola, pero creo que hay un problema en la implementación. Como dije, todos los complementos se pueden ejecutar por separado. Ahora, ¿dónde debería definir la cola? No puedo implementarlos en todos los complementos, creo. Tampoco puedo poner la cola en solo uno. –

+0

@SaifBechan Dos cosas vienen a la mente, quizás: 1) requieren que los usuarios de los complementos instalen primero su nuevo complemento de cola de prioridad AJAX ;-) o 2) definan la funcionalidad de cola en cada archivo (querrá automatizar eso, natch), con una prueba para ver si ya se ha creado. –

+0

Ok, estoy buscando en la segunda opción en este momento, cualquier recomendación sobre qué tipo de cola se puede utilizar ?. Realmente no quiero obligar a la gente a usar un 'envoltorio'. Si no hay otra opción, lo haré, pero espero que haya otra opción. Gracias. –

Cuestiones relacionadas