6
votes

Quels sont les inconvénients de l'utilisation de l'appel Ajax synchrone?

Cette question pourrait sûrement être appliquée à JQuery, mais dans ce cas, je parle de prototype. Dans le prototype Doc, il dit,

Depuis que l'utilisation synchrone est plutôt troublant et généralement mauvais goût, vous devrait éviter de changer cela. Sérieusement. P> BlockQuote>

Je ne suis pas sûr des inconvénients de l'utilisation d'un appel Ajax synchrone. Il semble qu'il y ait de nombreuses instances dans lesquelles vous devez attendre que l'appel redevient (sans utiliser les fonctions de rappel spécifiques). Par exemple, j'utilise actuellement le prototype onctusuccess, onFailure et onComplete code> pour gérer le reste du code. P>

Cependant, les services Web que j'utilise (tous en interne) couvrent la plupart des projets et J'ai été chargé de créer un code plus réutilisable. Un exemple serait une classe client qui renvoie les propriétés du client. Un exemple simple (garder à l'esprit que je ne montre que les fonctions de base pour le garder simple): p> xxx pré>

Ainsi, en utilisant cette classe simple, je peux faire ce qui suit dans n'importe quel projet de Obtenez les informations clientes. P>

var customer = new Customer(1);

//now I have the customer info
document.write(customer.customerInfo.firstName);


0 commentaires

4 Réponses :


2
votes

La plupart des gens froncent des appels Ajax synchrones, car il gèlera l'interface utilisateur jusqu'à ce qu'il soit terminé, car il ne permettra pas de continuer à continuer jusqu'à l'achèvement. Donne un bégaiement dans l'interface, je suppose que vous pourriez dire.


1 commentaires

Ensuite, je les souritions aussi bien et apprendra à mieux coder :)



6
votes

Eh bien, en plus du fait que ce soit très pas JavaScript, il a des effets aussi agréables que bloquant complètement l'interface utilisateur du navigateur . Ce n'est pas un problème mineur.

Certaines recherches ont fait des choses cooles. Bases de prototype "asynchrones" de xmlhttpresque.open. Selon wikipedia , ce n'est pas quelque chose qui n'est pas une partie requise de la spécification et il empêchera "OnreadyStatechange".


0 commentaires

10
votes

Rappelons-vous que JavaScript est un simple filetage

un appel synchrone IO bloque tout le fil

une solution simple consiste à utiliser Programmation de style asynchrone à l'aide de rappels. xxx


0 commentaires

2
votes

Eh bien, je ne trouve pas que c'est un problème de bloquer l'interface utilisateur si l'utilisateur génère une image de chargement lorsque l'appel synchrone est terminé. Cela pourrait être le même que de soumettre la forme.


2 commentaires

Le problème est que l'utilisateur ne peut pas distinguer du tout si le navigateur est suspendu car il y avait un problème ou s'il s'agit d'un comportement normal. Habituellement, lorsqu'une application ne répond plus à la contribution, je suppose que cela s'est écrasé en quelque sorte.


Si l'appel est synchrone, l'utilisateur ne verra même pas l'image de chargement, et cela ne sera certainement pas animé si c'est ce que vous attendez. C'est pourquoi c'est un problème.