Il semble plus que tout le monde fait des demandes asynchrones avec XMLHttpRequest mais, évidemment, le fait qu’il y a la possibilité de faire des demandes synchrones indique qu’il pourrait y avoir une raison valable de le faire. Ainsi ce que pourrait être cette raison valable ?
Réponses
Trop de publicités?XHRs synchrones sont utiles pour sauvegarder des données de l’utilisateur. Si vous gérez le `` événement, vous pouvez télécharger des données vers le serveur lorsque l’utilisateur ferme la page.
Si cela se fait en utilisant l’async option, puis la page pourrait fermer avant la fin de la demande. Faire cela de façon synchrone garantit la demande se termine ou échoue dans une manière attendue.
Je pense qu’ils pourraient devenir plus populaires que les progrès des normes HTML 5. Si une application web est autorisée à accéder à plusieurs threads, je pouvais prévoir les développeurs qui utilisent un thread dédié pour effectuer des requêtes synchrones, comme l’a dit Jonathan, afin d’assurer une demande arrive devant l’autre. Avec la situation actuelle d’un thread, il se trouve moins de conception idéale car il bloque jusqu'à ce que la requête est terminée.
Vous souhaitez effectuer des appels synchrones dans toute sorte de transaction-comme le traitement, ou d'ailleurs n'importe quel ordre d'opération est nécessaire.
Par exemple, disons que vous souhaitez personnaliser un événement à votre session après la lecture d'une chanson. Si la déconnexion de l'opération qui survient en premier, ensuite, la chanson ne sera jamais joué. Cela nécessite la synchronisation de la demande.
Une autre raison serait lorsque vous travaillez avec un WebService, en particulier lors de l'exécution de mathématiques sur le serveur.
Exemple: le Serveur a une variable avec une valeur de 1.
Step (1) Perform Update: add 1 to variable Step (2) Perform Update: set variable to the power of 3 End Value: variable equals 8
Si l'Étape (2) se produit en premier, puis la valeur de fin est de 2, 8; ainsi, l'ordre des questions d'opération et de synchronisation est nécessaire.
Il y a très peu de fois qu'un appel synchrone peut être justifiée dans une commune de l'exemple du monde réel. Peut-être lorsque vous cliquez sur connexion, puis en cliquant sur une partie du site qui nécessite que l'utilisateur connecté.
Comme d'autres l'ont dit, il fera le lien de votre navigateur, de sorte rester à l'écart de l'endroit où vous pouvez.
Au lieu d'appels synchrones, bien que, souvent, les utilisateurs veulent arrêter un événement qui est actuellement le chargement et ensuite effectuer une autre opération. Dans un sens, c'est de la synchronisation, depuis le premier événement est arrêter avant la fin de la seconde commence. Pour ce faire, utilisez la méthode abort() sur le xml de l'objet de connexion.
Je dirais que si vous considérez blocage navigateur de l’utilisateur pendant la demande acceptable, alors bien sûr utiliser une demande synchrone.
Si la sérialisation des demandes est votre objectif, puis cela est possible à l’aide de requêtes asynchrones, en ayant le rappel onComplete de votre feu de demande précédente le prochain en ligne.