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);
4 Réponses :
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. P>
Ensuite, je les souritions aussi bien et apprendra à mieux coder :)
Eh bien, en plus du fait que ce soit très em> pas JavaScript, il a des effets aussi agréables que bloquant complètement l'interface utilisateur du navigateur Strong>. Ce n'est pas un problème mineur. P>
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". P>
Rappelons-vous que JavaScript est un simple filetage em> un appel synchrone IO bloque tout le fil fort> p> une solution simple consiste à utiliser Programmation de style asynchrone à l'aide de rappels. p>
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. P>
Le problème est que l'utilisateur ne peut pas distinguer du tout i> 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.