Solución:
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 en la llamada, y un procesador de cola AJAX funcionaría a través de la cola en orden de prioridad.
Aquí hay un ejemplo de un complemento de cola de prioridad de jQuery:
http://benalman.com/code/projects/jquery-message-queuing/docs/files/jquery-ba-jqmq-js.html
Además, aquí hay uno ya implementado para solicitudes AJAX:
Secuencia de solicitudes ajax
Respuesta 2018
editar 2020: las sugerencias de prioridad están en espera por ahora: https://twitter.com/addyosmani/status/1204779715514392576
Todavía no es posible establecer prioridades explícitas en XMLHttpRequest
ni window.fetch
llamadas, pero hay una nueva propuesta de API impulsada por Google llamada “Sugerencias de prioridad”.
https://wicg.github.io/priority-hints/#examples
Por ahora, no es compatible con ningún navegador; Chrome 70 ha enviado una implementación experimental detrás de la bandera.
Reducir la contención de la red de solicitudes de API de recuperación no críticas
Las sugerencias de prioridad se pueden utilizar para reducir la prioridad de las solicitudes de la API Fetch no críticas para evitar que compitan con otras más importantes.
Un sitio de noticias que realiza una solicitud crítica de Fetch API para el contenido del artículo podría terminar compitiendo con solicitudes de recursos menos importantes, como contenido relacionado.
<script> // Critical Fetch request for article content fetch('/api/articles.json').then(/*...*/) // Request for related content contending with the above request fetch('/api/related.json').then(/*...*/) </script>
Al utilizar el atributo de importancia en la segunda solicitud de búsqueda, podemos sugerir que la prioridad de esa solicitud es baja, lo que reduce las posibilidades de que compita con la solicitud de búsqueda para el contenido del artículo. También podemos indicar explícitamente que la prioridad de la primera solicitud es alta para que los navegadores en los que las solicitudes de Fetch no tengan una prioridad alta sepan que es importante para la página.
<script> // Critical Fetch request for article content fetch('/api/articles.json', { importance: 'high' }).then(/*...*/) // Request for related content now reduced in priority // reducing the opportunity for contention fetch('/api/related.json', { importance: 'low' }).then(/*...*/) </script>