Bonjour � tous!
J'ai un petit probl�me de curiosit�.
Avant tout, je sais et je n'oublie pas que Javascript concerne le c�t� client et PHP le c�t� serveur.
MAIS voici mon soucis:
Le but: cr�er sur une page un b�te bouton qui arr�te le chargement(mais de fa�on propre, bien s�r, pas comme le bouton du navigateur)
Pour simplifier on va dire que le traitement que j'effectue est une grande boucle...
Dedans, j'ai une fonction JS qui teste si un flag de demande d'arr�t est lev�.
1 2 3 4 5 6 7 8 9 10 11 12
|
<?php
for(int $i=0;$i<100000000000000;$i++){
//Je teste si l'utilisateur a demandé le stop
echo"<script type='text/javascript'>teststop();</script>";
//Je fais mon traitement avec des affichages dedans
ma_fonction_A();
ma_fonction_B();
etc...
}
?> |
Pour cela, j'ai d�fini au pr�alable les fonctions suivantes:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
<script type="text/javascript">
//Variable stop : c'est un flag pour savoir si l'utilisateur a
//voulu interrompre la page
var stop= '1';
//Fonction d�clench�e par le bouton "interrompre"
function stopper(){
stop = '0';
}
var arreter_execution="<?php echo('Hello DVPZ!'); ?>";
//Fonction execut�e pendant la boucle de traitement si
//le flag d'interruption est lev�
function teststop(){
if (stop=='0'){ document.write(arreter_execution); }
}
</script> |
Voil�, alors tout cela me permet (et �a marche) d'afficher, d�s le moment o� l'utilisateur � cliqu�, d'afficher mon message, � chaque d�but de boucle.
L� o� je ne comprends plus, c'est lorsque je remplace mon
var arreter_execution="<?php echo('Hello DVPZ!'); ?>";
par un
var arreter_execution="<?php exit('Interruption!'); ?>";
Dans ce cas l�, la page ne se charge m�me pas, elle reste blanche.
Je me dis que c'est comme si le document.write avait �t� d�clench� � la fin du traitement et du coup aurait remplac� tout le contenu.
Mais alors, pourquoi? Car le traitement n'a pas encore eu lieu?
Et m�me s'il avait eu lieu, pourquoi le message "Interruption!" n'apparait-il pas? Parcequ'aucun script PHP n'a pu �tre interrompu?
Voil�, j'esp�re que ce n'est pas trop tordu...
Et si vous avez d'autres solutions � mon but, n'h�sitez pas 
Merci d'avance!
Partager