9
votes

Comment "diffuser" JSON du serveur au client à l'aide de JavaScript

Je suis assez familier avec Ajax et Json que je peux envoyer une demande et obtenir une demande JSON. Idéalement, j'aimerais recevoir une réponse multiple pour mettre à jour périodiquement une barre de progression. De cette façon, les clients peuvent avoir un retour positif.

J'ai entendu parler des ruisseaux JSON mais n'a pas trouvé de bonne ressource sur la manière de la mettre en œuvre. Est-ce que quelqu'un connaît une bonne ressource ou comment faire cela?


0 commentaires

4 Réponses :


0
votes
<script language="JavaScript">
  function doSomething() {
    // do something here...
   }
   setInterval('doSomething()',10000);
<script>
That will call a function every 10 seconds.  So you can poll the server every 10 seconds (or 1 second) to get a response on the status of whatever event you're trying to track.  Simply put your AJAX call inside that function and it'll send.

3 commentaires

Ce n'est pas en streaming.


Lorsque cette réponse a été écrite, il y a 7 ans, les webockets n'étaient pas une chose, et la seule véritable option de streaming était flash. Étant donné que "Stream" était dans des guillemets dans la question et la demande indiquée "Idéalement, j'aimerais recevoir une réponse multiple pour mettre à jour périodiquement une barre de progression", une solution de vote était viable, facile à mettre en œuvre et manquait de dépendances sur des logiciels tiers . Je sais que ce n'est pas en streaming, mais la demande l'a utilisé comme un verbe et non une exigence technique.


Il y a 7 ans, le streaming a été accompli par long interrogation. J'ai fait une application de discussion en streaming à l'époque - elle diffuse des messages entrants. Donc non que cela ne soit pas en streaming il y a 7 ans non plus.



0
votes

Essayez de regarder dans la bibliothèque "Comet". Il est implémenté ce que l'on appelle "Ajax inverse". Cela vous permettra d'envoyer des événements du serveur au client facilement.

La suggestion de vote faite juste avant le mien, est également parfaitement valide.


0 commentaires

1
votes

JSON est tout simplement un autre format de données sur le protocole HTTP (comme texte, html, pdf, etc.). Vous vous référez probablement à Cometd .

Cela vous permet d'ouvrir une connexion persistante et d'appuyer sur les données du serveur au client (c.-à-d. Stream it). Tout format est valide pour pousser, le client doit simplement le comprendre.


2 commentaires

Bien sûr, mais comment diffuser des fragments individuels JSON correctement?


Oui ... Ma réponse n'était pas mon meilleur. Mais fondamentalement, mon expérience est qu'il n'y a pas de standard ici. La façon dont je l'ai vue, c'est que vous définissez un délimètre. L'utilisation d'une nouvelle ligne fonctionne assez bien. En conséquence, le client vient de "readlines" le flux. Chaque ligne est supposée être un objet complete JSON / la charge utile consommée.



1
votes

a trouvé une technique appelée streaming de page .

Fondamentalement, vous écrivez