Pergunta

Eu quero criar um aplicativo da Web com um modelo que persiste entre solicitações HTTP.Pelo que entendo idiomas como php tratar cada solicitação HTTP como uma nova conexão, exceto algumas variáveis globais, como sessão;Então, toda vez que o usuário altera páginas todas as minhas classes PHP são carregadas em memória novamente (e cada solicitação AJAX faz isso também) - exigindo que eu construa no banco de dados a cada vez.

Estou enganado ou estou tentando fazer um círculo em um quadrado?Mamcached parece ser uma boa solução para manter meu modelo na memória entre as solicitações de página, mas ainda precisa carregar o cache.Php Cli parecia promissor, mas depois de analisar mais, parecia que seria mais problemas do que valia.Alguma sugestão?

Foi útil?

Solução

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.

Outras dicas

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top