Mon script est composé de deux parties. La première partie génère une page HTML. La deuxième partie charge un resourse du réseau et l'enregistre dans un fichier. Le chargement est une opération longue et peut durer jusqu'à 10 secondes. Les première et seconde parties sont complètement indépendantes (le chargement n'a aucun impact sur l'aspect de la page).PHP: Comment afficher la page avant la fin du script?
À la fin de la première partie, j'appelle flush(), ce qui rend la page affichée instantanément. Cependant, le film SWF incorporé n'est pas affiché pour l'instant. SWF est l'élément clé de la page et il doit être affiché aussi vite que possible. Il est incorporé dans la page avec la bibliothèque SwfObject. Et le problème est que SwfObject commence à ouvrir SWF sur l'événement "onLoad" de la page. Mais l'événement "onLoad" se trouve à la fin de la partie deuxième. C'est "onLoad" peut se produire dans 10 secondes. Ainsi, malgré l'appel de flush(), l'utilisateur doit attendre 10 secondes en vain.
Est-il possible de résoudre la tâche du côté PHP? Est-il possible d'exécuter la tâche "chargement" (la deuxième partie) dans un processus séparé? Est-il possible de dire au navigateur avant le début de la deuxième partie, que la page est reay et que vous pouvez diffuser l'événement "onLoad".
Merci d'avoir lu cette très longue histoire.
Que faire si JS est désactivé;)? – Wookai
Ensuite, je suggère définitivement d'exécuter la deuxième partie dans un processus séparé en utilisant soit pcntl-fork ou le système. –