Dans mon application web jQuery, j'utilise essentiellement des événements.
Mon composant pour faire des requêtes client ajax (le nom est "comm") au serveur a une file d'attente.
Cette file d'attente est similaire à une collection Backbone.js.
Ainsi, à chaque fois que je place un nouvel objet requête dans la collection de "comm", l'objet comm reçoit un événement "add" et la méthode "worker" de "comm" regarde s'il y a actuellement une requête en cours. S'il n'y en a pas, la méthode "worker" traite la demande et finalement, lorsque tout fonctionne bien, déclenche un événement "complete" sur l'objet de demande.
Dans ce composant comm, une seule demande à la fois est possible. Si j'ajoute un objet de requête à "comm" et que l'événement "add" est déclenché et que la méthode worker voit qu'il y a déjà une requête, alors rien ne se passe.
Ma question est la suivante : dans cette situation, quelle est la meilleure approche pour traiter cet objet de demande non traité au regard d'une "INFRASTRUCTURE D'ÉVÉNEMENT" ?
Jusqu'à présent, j'avais deux approches différentes :
1) Je pourrais faire ce qui suit : Si ma demande en cours est terminée, la méthode worker peut vérifier s'il y a un objet de demande non traité dans la collection et le traiter. C'est simple, aucun événement n'est impliqué.
2) Ou quelque chose de différent : Si la méthode worker démarre à cause d'un événement "add" et voit qu'il y a déjà une demande en cours, je pourrais implémenter quelque chose comme : "Je ne peux pas répondre adéquatement à cet événement d'ajout, je vous replace. Veuillez vous déclencher à nouveau dans 200 millisecondes, j'aurai peut-être le temps à ce moment-là."
Peut-être que quelqu'un a déjà eu un problème similaire et a trouvé une très bonne solution ?