2009-04-26 9 views
3

Je travaille sur un projet qui m'a constamment ping sur un script php pour de nouvelles données, donc si je comprends bien cela signifie que le script php étant cinglé se répète indéfiniment. Cela fonctionne mais je suppose que c'est une énorme contrainte sur le serveur, et est probablement considéré comme une pratique laide et mauvaise. Ai-je raison à ce sujet? Y at-il un moyen de garder la connexion au script en vie et d'utiliser la mémoire tampon de sortie intégrée de php pour vider le contenu dont j'ai besoin, mais garder le script à l'infini en utilisant une sorte de boucle alors quand de nouvelles données disponible, il peut être sorti. Est-ce une mauvaise idée aussi?Garder une connexion en direct avec php?

Je suis à la recherche de développeurs de formulaires d'entrée avec plus d'expérience.

Une dernière chose ...

Existe-t-il d'autres façons de maintenir un flux constant de données en cours (à l'exception des technologies telles que le flash ou silverlight)?

Répondre

4

Si ce que vous avez actuellement fonctionne et continue de fonctionner malgré le type de charge que vous êtes en droit d'attendre de cette application, cela n'est pas vraiment considéré comme une mauvaise pratique. Ce n'est pas un crime de rester simple si cela fonctionne. Tout ce qui fait ce que vous décrivez va aller à l'encontre du modèle original de la toile, alors vous vous aventurez dans un territoire incertain. Je recommande de consulter la technique Comet. Il est surtout populaire pour l'inverse de ce que vous voulez - le serveur poussant l'information vers une page en continu - mais il peut évidemment fonctionner dans les deux sens. Bien que votre kilométrage puisse varier, j'ai entendu de bonnes choses. Comme Wikipedia décrit:

dans le développement web, la comète est un néologisme pour décrire un modèle d'application Web dans laquelle une requête HTTP de longue date permet à un serveur Web pour pousser des données vers un navigateur, sans le navigateur demandant explicitement . Comet est un terme générique désignant plusieurs techniques pour réaliser cette interaction. Toutes ces méthodes reposent sur des fonctionnalités incluses par défaut dans les navigateurs, tels que Javascript, plutôt que sur les plugins non-par défaut.

0

Il semble presque que php ne serait pas le meilleur choix de langue pour cela. Peut-être envisager quelque chose comme scala ou erlang qui sont configurés pour gérer ce type de messagerie de longue durée mieux.

+0

Je suis d'accord mais je suis prêt à relever le défi. –

0

Je dirais que cela dépend. Si vous voulez que les transferts de données soient démarrés par le client, votre meilleur choix ici serait un ajax (comme getxmlhttpobject ou juste iframes si vous avez envie de tricher: P). Si vous voulez que les transferts soient lancés par le serveur, alors peut-être que php n'est pas la langue que vous voulez utiliser.