Question

Je souhaite créer une application Web avec un modèle qui persiste entre les demandes HTTP.De ce que je comprends des langues comme PHP traiter chaque demande HTTP en tant que nouvelle connexion, à l'exception de certaines variables globales telles que la session;Ainsi, chaque fois que l'utilisateur change de pages toutes mes classes PHP sont chargées à nouveau en mémoire (et chaque demande AJAX le fait aussi) - vous obligeant à créer à chaque fois la base de données.

Suis-je trompé ou suis-je en train d'essayer de faire un cercle en forme sur une place?Memcached semble être une bonne solution pour garder mon modèle en mémoire entre les demandes de page, mais il doit toujours charger le cache.PHP CLI semblait prometteur mais après avoir examiné, il semblait que ce serait plus de problèmes que cela ne valait que la peine.Toute suggestion?

Était-ce utile?

La solution

You should avoid requiring a persistent state in your web application; HTTP is stateless and you need to design your business logic around that. Also, PHP isn't very memory-leak safe since it isn't meant to act as a daemon or run for extended periods. You shouldn't be maintaining a database of information in PHP variables either. You can cache expensive query results in memcache and retrieve them with very little latency.

You can serialize your model, store it in a session (or memcache), and deserialize it on the next request in order to keep relevant variables within scope between requests. If you share a bit more about the specifics of your application, perhaps we can help you figure out the best way to handle this.

Autres conseils

I do agree that one should try to avoid sharing states between requests. But in rare cases, such as to implement a simple message queue over HTTP, It's desirable to have this feature in hand.

For php, one could use IPC via the php_shmop extension.

For nodejs, I found this

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top