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

jQuery Discussion :

Fonction load dans une boucle while


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 453
    Par défaut Fonction load dans une boucle while
    Bonjour,

    Mon but est de faire appel à plusieurs pages web pour en extraire leur contenu et les ajouter dans ma page (scrolling). Mais je dois d'abord faire appel à ma page 1 puis 2 etc... pour que les contenus soient afficher dans l'ordre. Et je ne sais pas à l'avance combien j'aurais de pages.
    Hors la fonction load (dans mon code suivant) est asynchrone du coup ma boucle while ne permet pas de faire appel à mes pages dans l'ordre..

    J'ai tenté une fonction récursive mais ça n'avait pas l'air de fonctionner mieux...

    Une idée?

    Merci.

    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
     
     
    function fetchPage(page,nbPages,urlStr){
    $("<div>").load(urlStr, function() {
          $(".maClasse").append($(this).html());
    });
     
    }
     
    ...
     
    	while( page <= nbPages){
    		var urlStr = "monURL;
    		 fetchPage(page,nbPages,urlStr);
    		 page++;
    	}

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Bonjour,

    Le code est exécuté coté client ?

    N'y a-t-il un problème de same-origin policy ?

  3. #3
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Salut

    Mauvais Copier/Coller ? ligne 13, il y a un problème de ".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var urlStr = "monURL";
    //Ou
    var urlStr = monURL;
    var urlStr = "monURL; // pas bon
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 453
    Par défaut
    Oui j'ai changé tout mon url par MonURL et j'ai oublié le guillemets c'est juste pour donner une idée.
    En fait je rappelle la meme page avec des paramètres différents ex: www.mapage.com?page=1&tag=untag puis www.mapage.com?page=2&tag=untag etc.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 453
    Par défaut
    J'ai enfin fini par trouver une solution en faisant un appel récursif dans la fonction load pour que la fonction suivante soit appelée uniquement quand le load a fini:

    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
     
    function addPages(page, categ, yr, nbPages,urlStr) {
    	$("<div>").load(urlStr + " .list-content", function() {
    		console.log(page);
    		$(".articleList").append("<div class='list-content'>" + $(this).find(".list-content").html() + "</div>");
    		page++;
    		if(page <= nbPages) {
    			urlStr = MonURL + "?pagenumber=" + page + "&category=" + categ + "&year=" + yr;
    			console.log(urlStr);
    			addPages(page, categ, yr, nbPages,urlStr);
     
    		}		
    	});
     
     
     
    }

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 453
    Par défaut
    Maintenant j'ai un autre soucis.. la page que je rappelle génère un script qui charge les vidéos sur ma page. Du coup quand je reprends le contenu de ma page pour l'insérer dans ma page courante mes vidéos n'y sont plus:-(... parce que ce script n'est pas chargée quand je fais mon load... je suppose..

    J'ai tenté un setTimeout quand j'appelle load(url) mais cela ne fonctionne pas non plus..

    Une idée pour résoudre ce problème?

    Merci

Discussions similaires

  1. [PHP 5.2] Fonction d'extraction dans une boucle while
    Par Derdesders dans le forum Langage
    Réponses: 4
    Dernier message: 27/08/2016, 21h04
  2. fonction mail dans une boucle while
    Par tjoce dans le forum Langage
    Réponses: 5
    Dernier message: 23/04/2010, 18h39
  3. [Conception] Problème de test dans une boucle while
    Par Cyrius dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/11/2005, 18h07
  4. Réponses: 6
    Dernier message: 17/06/2005, 16h51
  5. [MFC] Dialog dans une boucle while
    Par oxor3 dans le forum MFC
    Réponses: 5
    Dernier message: 23/04/2004, 22h51

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