IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Abort sur une onreadystatechange


Sujet :

AJAX

  1. #41
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    1- On veut le code HTML généré mais pas le code PHP.
    2-
    echo "<div class='s100' id='res_container68'><img src='img/loading9.gif'><BR>Chargement en cours<BR>Merci de patienter...</div>";
    echo "<body onload=\"aj
    Tu ne dois pas avoir un div avant ton body.

  2. #42
    Membre habitué
    Inscrit en
    Août 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 14
    Par défaut
    1- Le code HTML généré

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    	<head>
    		<title>XXXX</title>
    		<link type='text/css' rel='stylesheet' title='principale' href='prismes2.css'>
    		<link rel='icon' type='image/png' href='img/logo70.png'/>
    	</head>
    	<body class='bodyoutil' >
    		/* J'ai supprimé une partie de code, c'est que du HTML pour la mise en forme */
     
    		<div id='gen_cglobal'>
    			<div id='gen_globalcol' align='center'>
    				<div class='corner_tl'></div>
    				<div class='blacktop'>
    					<div class='blacktop2'></div>
    				</div>
    				<div class='corner_tr'></div>
    				<div class='gen_in'>
    					<div class='titreop toutil'>XXXX</div>
    					<div class='blockcadre'>
    						<blockquote>
    							<BR><BR>
    							<table class='data s95'>
    								<tr>
    									<td class='outil3' width='14.3%'>XX1</td>
    									<td class='outil1' onmouseover="this.className='outil2'" onmouseout="this.className='outil1'" style='cursor:pointer;' onclick="window.location.href='outil_credit.php?cat=2'" width='14.3%'>XX2</td>
    									<td class='outil1' onmouseover="this.className='outil2'" onmouseout="this.className='outil1'" style='cursor:pointer;' onclick="window.location.href='outil_credit.php?cat=3'" width='14.3%'>XX3</td>
    									<td class='outil1' onmouseover="this.className='outil2'" onmouseout="this.className='outil1'" style='cursor:pointer;' onclick="window.location.href='outil_credit.php?cat=4'" width='14.3%'>XX4</td>
    									<td class='outil1' onmouseover="this.className='outil2'" onmouseout="this.className='outil1'" style='cursor:pointer;' onclick="window.location.href='outil_credit.php?cat=5'" width='14.3%'>XX5</td>
    									<td class='outil1' onmouseover="this.className='outil2'" onmouseout="this.className='outil1'" style='cursor:pointer;' onclick="window.location.href='outil_credit.php?cat=6'" width='14.3%'>XX6</td>
    									<td class='outil1' onmouseover="this.className='outil2'" onmouseout="this.className='outil1'" style='cursor:pointer;' onclick="window.location.href='outil_credit.php?cat=7'" width='14.3%'>XX7</td>
    								</tr>
    								/*on retrouve ici le code qui nous interesse*/
    								<tr>
    									<td class='simple' colspan=7> <div class='s100' id='res_container6'><img src='img/loading9.gif'><BR>Chargement en cours<BR>Merci de patienter...</div><body onload="ajax_outil(6);"></td>
    								</tr>
    							</table>
    							<BR>
    						</blockquote>
    					</div>
    				</div>
    				<div class='corner_bl'></div>
    				<div class='whitebottom'>
    					<div class='whitebottom2'></div>
    				</div>
    				<div class='corner_br'></div>
    			</div>
    		</div>
    		<BR><BR>
    	</body>
    	<head>
    		<script type='text/javascript' src='lib/kwicks/jquery-1.4.3.min.js'></script>
    		<script type='text/javascript' src='lib/prismes2f.js'></script>
    		<script type='text/javascript' src='lib/kwicks/jquery.kwicks-1.5.1.js'></script>
    		<script type='text/javascript' src='lib/kwicks/custom.js'></script>
    		<script type='text/javascript' src='lib/kwicks/jquery.jcarousel.js'></script>
    		<script type='text/javascript' src='lib/kwicks/jquery.easing.1.3.js'></script>
    		<script type='text/javascript' src='lib/kwicks/jquery.mousewheel.js'></script>
    		<script type='text/javascript' src='lib/phone.js'></script>
    	</head>
    </html>
    2- Alors pour le body en plein milieu de la page, c'est une feinte (J'ai honte ) pour garder que l'imbrication de mes fichiers php ne posent pas de problèmes. Mais ça marche sans problèmes, je t'assure.

  3. #43
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Tu ne dois t'avoir qu'une seule balise head et ça doit être avant le body.
    Et ton body n'appelle pas une fonction dans le onload .

  4. #44
    Membre habitué
    Inscrit en
    Août 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 14
    Par défaut
    Ben le deuxième body appelle la fonction onload.
    J'ai un premier body et en milieu de page (là où j'ai mis un commentaire dans le code), j'en ai un autre.
    Je sais que ça fait pas propre mais si j'appelle l'onload autrement (avec une image par exemple), j'ai des erreurs.

    Ensuite, je fait l'annonce de mes scritps en fin de page html pour accélérer l'affichage de la page (flush). J'y gagne plusieurs secondes, ce qui n'est pas négligeable.

    Mais revenons-en au fait, si tu veux bien. Comment voir si je suis synchrone ou asynchrone ? Là, concrètement pour moi, je pensais (peut être naïvement) que le seul fait de passer par une fonction java qui gère le onreadystatechange, ça faisait de l'asynchrone.

    Peux-tu m'en dire plus ?

  5. #45
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Ben le deuxième body appelle la fonction onload.
    Un document ne doit avoir qu'une seule balise head, une seule balise body, et une seule balise html.

  6. #46
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par FireCracker Voir le message
    Mais revenons-en au fait, si tu veux bien. Comment voir si je suis synchrone ou asynchrone ? Là, concrètement pour moi, je pensais (peut être naïvement) que le seul fait de passer par une fonction java qui gère le onreadystatechange, ça faisait de l'asynchrone.

    Peux-tu m'en dire plus ?
    >>> voir le 3eme param de ton open
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open("GET", "cod_ajaxoutil.php?tp="+cd_origine+"&arg="+argument, true);
    true = asynchrone
    false = synchrone
    Citation Envoyé par FireCracker Voir le message
    le deuxième body
    Désolé, mais malgré tes explications j'ai du mal à ne pas me assez fort

  7. #47
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Citation Envoyé par RomainVALERI Voir le message
    Désolé, mais malgré tes explications j'ai du mal à ne pas me assez fort
    Moi j'ai pas pu lire jusqu'à la fin en voyant le
    Ben le deuxième body appelle la fonction onload.
    par peur de ne pas faire un vendredi zolizoli malgré mes remarques précédents.

  8. #48
    Membre habitué
    Inscrit en
    Août 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 14
    Par défaut
    Bon alors je suis asynchrone et ce n'est donc pas ça qui fait défaut.
    Qu'il y ait un ou plusieurs body ou head, c'est pas un problème et je dois même dire que je m'en fous parce que je peux pas faire autrement.

    Maintenant, le problème reste le même. Si je clique sur un lien de ma page, il va attendre d'avoir rappatrié les données avant de me lancer sur ma nouvelle page.
    Donc au final (et c'est ce que je veux éviter), on doit attendre deux fois le traitement.
    C'est pourquoi je veux faire un abort au moment où je clique sur le lien.

    Allez, une pitite réponse (je me contenterai d'une moitié)

  9. #49
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Citation Envoyé par FireCracker Voir le message
    Bon alors je suis asynchrone et ce n'est donc pas ça qui fait défaut.
    Qu'il y ait un ou plusieurs body ou head, c'est pas un problème et je dois même dire que je m'en fous parce que je peux pas faire autrement.
    Tu sais bien que javascript (AJAX) n'interagit qu'avec le DOM du document?
    Si tu as un problème avec ton DOM, il se peut que tu as un problème avec Javascript.
    Perso, j'ai jamais rencontré ce problème en travaillant en mode asynchrone en respectant bien la structure de mon code HTML.
    Mais bon à toi de voir.

  10. #50
    Membre habitué
    Inscrit en
    Août 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 14
    Par défaut
    Oui je sais que AJAX récupère les DOM du XML qu'il prend en retour.
    Mais là, en l'occurence, il n'y a pas de DOM vu que je fais pas vraiment de l'AJAX mais on pourrait appeler ça de l'AJAH (pour Asynchronous Javascript and HTML) vu que ce que j'introduit avec le innerHTML dans ma fonction java c'est du HTML et à aucun moment je retraite les balises (ce qui est l'utilité des DOM du XML)

    A voir, si quelqu'un a une autre idée.

  11. #51
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par FireCracker
    Qu'il y ait un ou plusieurs body ou head, c'est pas un problème et je dois même dire que je m'en fous parce que je peux pas faire autrement.
    Ouais, c'est vrai, c'est plus pittoresque comme ça et se serait dommage de faire en sorte que ça puisse fonctionner !
    Citation Envoyé par FireCracker
    Oui je sais que AJAX récupère les DOM du XML qu'il prend en retour.
    Mais là, en l'occurence, il n'y a pas de DOM vu que je fais pas vraiment de l'AJAX mais on pourrait appeler ça de l'AJAH (pour Asynchronous Javascript and HTML) vu que ce que j'introduit avec le innerHTML dans ma fonction java c'est du HTML et à aucun moment je retraite les balises (ce qui est l'utilité des DOM du XML)
    Commence par abandonner tes certitudes et par apprendre les bases...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  12. #52
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Citation Envoyé par FireCracker Voir le message
    Oui je sais que AJAX récupère les DOM du XML qu'il prend en retour.
    Pour faire quoi?
    --> C'est pour l'utiliser sur le DOM du document.
    Citation Envoyé par FireCracker Voir le message
    Mais là, en l'occurence, il n'y a pas de DOM vu que je fais pas vraiment de l'AJAX mais on pourrait appeler ça de l'AJAH (pour Asynchronous Javascript and HTML) vu que ce que j'introduit avec le innerHTML dans ma fonction java c'est du HTML et à aucun moment je retraite les balises (ce qui est l'utilité des DOM du XML)
    Là tu interagis avec le DOM du document qui est pourri .
    Citation Envoyé par FireCracker Voir le message
    A voir, si quelqu'un a une autre idée.
    Pour répondre à ça, je me réfère à une citation plus haut, vu que tu n'écoutes pas les conseilles.
    Citation Envoyé par FireCracker
    je dois même dire que je m'en fous parce que je peux pas faire autrement.
    A+.

  13. #53
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par FireCracker Voir le message
    ... je dois même dire que je m'en fous parce que je peux pas faire autrement.
    Ce n'est pas pour en remettre une couche hein mais je crois que tu fais une confusion : il faudrait dire :
    ... je dois même dire que je ne m'en fous pas parce que je peux ne sais pas encore faire autrement.
    Je te souhaite sincèrement d'envisager une refonte de ta page. ^^

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/05/2009, 09h59
  2. [AJAX] zoom sur une image + déplacement
    Par yann.morineau dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/02/2009, 09h41
  3. [AJAX] requete sur une page php
    Par xokami35x dans le forum Général JavaScript
    Réponses: 25
    Dernier message: 20/11/2008, 20h35
  4. [AJAX] Rafraîchissement automatique sur une liste déroulante
    Par frutix dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/04/2007, 16h09
  5. [AJAX] Avoir des infos sur une page web
    Par Skieur38 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/03/2007, 21h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo