Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/08/2011, 11h39   #1
Membre habitué
 
Inscription : mai 2004
Messages : 383
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 383
Points : 129
Points : 129
Par défaut Lancer un script PHP avant de quitter la page.

Salut,

Il me faut pouvoir lancer un script php avant de quitter la page. Pour ce faire j'utilise window.onbeforeunload/onunload comme ceci:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
var link_ca = 'http://192.168.0.20:8888/ca.php'
 
function unload(){ 
  if(onCo==1) {
     image = new Image();
     image.src = link_ca ;
     sleep(2000) ;
  }
}
 
if(is_opera) {
  window.onunload=unload(); 
} else {
  window.onbeforeunload = function (e) {
    var e = e || window.event;
    if(e) {
      if(onCo==1) {
          image = new Image();
          image.src = link_ca ;
          sleep(2000) ;
      }
    } 
  }
}
Avec donc une fonction sleep sensée interrompre cette fonction pour laisser le temps à image.src de se charger.
Code :
1
2
3
4
5
 
function sleep(milliseconds) {
  var start = new Date().getTime();
  while ((new Date().getTime() - start) < milliseconds) { }
}
Mais voilà, des fois ça ne marche pas, surtout si je n'utilise pas la fonction sleep().

Quelqu'un aurait une idée pour faire en sorte d'être sur que ca.php est bien été exécuté avant de quitter la page ?

Et aussi, est-ce que le fait de quitter la page peut interrompre l’exécution de ca.php jusqu'au bout ?

Merci,
Vincent.
defacta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 11h43   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 129
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 129
Points : 7 260
Points : 7 260
Bonjour,

Je ne comprend pas très bien ton soucis mais je pense qu'au lieu de créer une fonction sleep, ce sera mieux d'utiliser la fonction setTimeout.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 11h48   #3
Membre habitué
 
Inscription : mai 2004
Messages : 383
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 383
Points : 129
Points : 129
Citation:
Envoyé par andry.aime Voir le message
Bonjour,

Je ne comprend pas très bien ton soucis mais je pense qu'au lieu de créer une fonction sleep, ce sera mieux d'utiliser la fonction setTimeout.

A+.
Le problème de setTimeout c'est qu'il continue d'exécuter le script, et donc on quitterait directement la page. Cette fonction sleep me permet de bloquer window.onbeforeunload juste après avec charger dans l'image le fichier ca.php que je souhaite exécuter avant de quitter la page.
defacta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 13h53   #4
Membre Expert
 
Avatar de Willpower
 
Homme Boris Dessy
sans emploi
Inscription : décembre 2010
Messages : 867
Détails du profil
Informations personnelles :
Nom : Homme Boris Dessy
Localisation : Belgique

Informations professionnelles :
Activité : sans emploi

Informations forums :
Inscription : décembre 2010
Messages : 867
Points : 1 374
Points : 1 374
Plutôt qu'une image, as-tu pensé aux requêtes ajax de type synchrone ?

edit: ne fonctionnera que si la requête se fait sur le même serveur.
Willpower est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h46.


 
 
 
 
Partenaires

Hébergement Web