2009-11-03 33 views
0

je voudrais envoyer des réponses au client pendant une requête ajax (imaginez un téléchargement de fichier ou quelque chose) et réagir sur ces réponses sur le client.envoyer des réponses multiples sur une requête ajax et réagir sur client

  1. envoyer ajax demande
  2. faire beaucoup de travail sur Serverside et envoyer des informations à ce sujet à la clientside
  3. pendant la Serverside ist encore faire beaucoup de travail faire quelque chose comme clientside informer l'utilisateur sur les progrès ...

J'espère que cela est compréhensible?

maintenant comment faire cela? Jusqu'à présent, je ne peux réagir que lorsque la requête ajax est terminée.

Répondre

1

Vous pouvez essayer d'utiliser plusieurs requêtes ajax et les appeler séquentiellement en utilisant la fonction de rappel proposée par le framework que vous utilisez. Par exemple (jQuery):

function getData(){ 
    $.load(someUrl,onDataReceived) 
} 
function getMoreData(){ 
    $.load(someOtherUrl,onMoreDataReceived); 
} 
function onDataReceived(){ 
    // update your UI in a meaningful way so that the user knows things are happening 
    getMoreData(); 
} 
function onMoreDataReceived(){ 
    // update your UI again 
    alert('Got Everything'); 
} 
$(function(){ getData(); }); // start the process on page load 

Je crois qu'il est possible d'écouter « événements progress », mais je pense que ceux qui sont limités à des choses comme le téléchargement de fichiers, etc.

Quoi qu'il en soit, bonne chance!

+0

Vous pouvez mettre getMoreData dans un bloc settimeout sinon il sera interrogé trop souvent. –

Questions connexes