2011-09-13 3 views
0

Je travaille sur une application android qui montrera une page html qui contient seulement du texte sur une tablette. L'appareil sera allumé et affichera cette page pendant de longues périodes (plusieurs heures). Le texte sur cette page sera changé de temps en temps. Pour changer le texte sur la page j'ai fait une deuxième page séparée qui contient un formulaire pour entrer les nouvelles chaînes dans et un bouton de soumission qui utilise ASP pour générer une nouvelle version de la première page et l'enregistrer au-dessus de la copie originale. Ceci est mis en place et fonctionne très bien, mais cela signifie que je dois actualiser la page très fréquemment afin de s'assurer que je montre toujours le dernier message.Déclencher une actualisation de page Web

Je cherche un moyen de déclencher une actualisation uniquement lorsqu'un nouveau message est enregistré. De cette façon, je n'aurai pas à rafraîchir la page chaque minute, mais le nouveau message sera toujours affiché en temps opportun.

+0

Ceci est appelé "pousser". Vous pouvez google pour "Push Web Site" et lire beaucoup de façons de gérer cela. –

Répondre

1

Aucun dés, HTTP est construit comme un état sans état, pull-only (ignorant les téléchargements de fichiers). Le serveur ne peut pas pousser les données vers le client, le client doit effectivement interroger le serveur pour obtenir de nouvelles informations. Cependant, vous pouvez minimiser la surcharge en utilisant un appel AJAX avec JSON comme protocole de transport au lieu de générer des pages Web entières et de mettre à jour votre page côté client. Les frais généraux devraient être minimes pour presque n'importe quelle application.

+0

Il existe des mécanismes dans HTTP pour simuler un push. Essentiellement, vous utilisez un GET suspendu. Vous faites une demande GET et le serveur ne répond pas immédiatement - il répond quand il veut pousser. Il y a des frameworks qui gèrent tous les détails (et redémarre) pour que cela ressemble à un vrai PUSH. –

+0

Bien sûr, mais ils ne sont encore que des hacks basés sur la technologie pull. Ma réponse est techniquement correcte :) – Blindy

+0

Si le client supporte JavaScript WebSockets, le serveur ** peut ** pousser les données. Ce n'est pas HTTP, mais il est facile à implémenter. –

0

Si vous n'étiez qu'une application Web, je vous suggérerais d'explorer les différents frameworks Comet.

http://www.google.com/search?q=comet+framework

Mais, puisque vous avez une coquille Android autour d'elle, vous pouvez établir une connexion Socket à votre serveur et que le signal de serveur quand il est temps de rafraîchir. C'est essentiellement la même chose, mais vous n'avez pas besoin de coder la poussée en JavaScript si vous êtes plus à l'aise en Java.

Questions connexes