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] Nombre de requêtes simultanées par page


Sujet :

AJAX

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 7
    Points : 6
    Points
    6
    Par défaut [AJAX] Nombre de requêtes simultanées par page
    Bonjour,

    Je développe actuellement une application où, pour améliorer la vitesse de chargement de mes pages, j'ai décidé de charger des blocs de contenu de façon asynchrone en utilisant ajax.

    Pour cela, je fait un simple appel ajax :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script type="text/javascript">
     
        $(window).load(function(){
     
            $.ajax({
                url: "/maPpage"
                }).done(function ( data ) {
                    $('#id').html(data);
                });
     
        });

    Je fait ceci pour plusieurs blocs de contenu. Mon problème est le suivant : je dispose d'un hébergement OVH 'Perso' (mutualisé), et j'ai l'impression que plus le nombre de ces requêtes AJAX au chargement de la page est grand, plus chaque requête met de temps à se charger. Exemple :
    - premier bloc : 10 sec
    - deuxième bloc : 30 sec
    - troisième bloc : 1minute

    Si je fais le même appel ajax avec un .click(), chaque bloc se charge beaucoup plus vite (une seconde)...

    Je ne sais pas d'où ça vient :colere2: Serait-ce OVH qui limite le nombre de connexion simultanées d'un utilisateur sur un serveur ? Ou est-ce que ma syntaxe n'est pas optimisée ?

    Merci pour vos éclaircissement... je craque ! ^^

    PS : un petit dessin vaut mieux que de grandes explications (cliquer 1 fois sur l'image pour agrandir) :


  2. #2
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Non, c'est le navigateur qui bloque le nombre de requêtes simultanées. Généralement, le nombre maximal est de trois.

    Ceci dit,
    pour améliorer la vitesse de chargement de mes pages, j'ai décidé de charger des blocs de contenu de façon asynchrone en utilisant ajax
    je vois mal en quoi multiplier le nombre d'appels HTTP peut améliorer la vitesse de chargement...
    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

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Tu devrais te mettre à notre place, comment répondre a pareille question ?
    lorsque tu exécutes un module pur de JavaScript,
    par exemple
    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
     
    <script type="text/javascript">
    var le1 = setInterval(Lajax(10),5000);
    var le2 = setInterval(Lajax(20),10000);
    function Lajax(param1)
    {
      var xx;
      if (window.XMLHttpRequest){ xx = new XMLHttpRequest();}
      else if (window.ActiveXObject) {xx = new ActiveXObject('Microsoft.XMLHTTP');}
      else {
        alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
        xx = false;   }
      xx.open('POST',"unPHP.php",true);
      xx.onreadystatechange = function()
      {
          if (xx.readyState == 4 && xx.status==200)
          {
              if (document.getElementById) 
              {    
              document.getElementById('LeTexte').innerHTML=''+xx.responseText+'';
              }     
          }
      }
      xx.setRequestHeader('Content-type','application/x-www-form-urlencoded');
      xx.send('param1='+param1);                  
    }
    </script>
    Le PHP unPHP.php sur le serveur est appelé sans arrêt , et cela ne pose aucun problème ! car tout dépend de la taille de ce PHP et de se qu'il fait !
    Alors précise
    A++
    Christele

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    En effet si tu veux plus de rapidité dans ton chargement c'est vrai qu'il n'y a pas trop de logique de découper ta page en sous requête AJAX pour charger des morceaux de ta page. Après si effectivement tu as une partie de ta page qui a un gros morceau à charger et que c'est pas primordial pour l'utilisateur dans la première seconde de sa visite, tu peux taper un appel AJAX à ce moment pour le charger en asynchrone et pas bloquer le reste de la page juste pour cette partie. Mais sinon faire n requête pour charger ta page te fera pas aller plus vite, surtout comme le dit Bovino les navigateurs limites le nombres de requêtes.
    Après par contre lors de ta navigation tu peux choisir de naviguer en AJAX pour recharger juste ce dont tu as besoin.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par benjyyyyy Voir le message
    Tu peux taper un appel AJAX à ce moment pour le charger en asynchrone et ne pas bloquer le reste de la page
    MDR ... tu ne risque pas, la page s'affiche toujours en entier puisque JavaScript n'est lancé que lorsque le HTML est chargé complètement chez le visiteur.
    La notion Asynchrone/Synchrone ne jouant que pour la requête AJAX !
    A++
    Christele

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    Oui donc si tu veux charger un morceau de ta page en asynchrone, tu poses un div vide, et quand c'est chargé tu charge ton div...en asynchrone ^^

  7. #7
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Si tu veux optimiser l'affichage de la page, tu peux passer par flush et ob_ flush en PHP, mais AJAX ne fera qu'alourdir la chose...
    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

  8. #8
    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
    Points : 15 059
    Points
    15 059
    Par défaut
    Citation Envoyé par christele_r Voir le message
    MDR ... tu ne risque pas, la page s'affiche toujours en entier puisque JavaScript n'est lancé que lorsque le HTML est chargé complètement chez le visiteur.
    Euh:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <html>
    	<head>
    		<title>test js</title>
    	</head>
    	<body>
    		<div>Affiche 1</div>
    		<script type="text/javascript">alert('fermer avant de continuer le chargement')</script>
    		<div>Affiche 2</div>
    	</body>
    </html>

  9. #9
    Invité
    Invité(e)
    Par défaut
    Arh... un comble je vivais depuis xx années avec cette idée préconçue

    Mille escuses a vous tous, et merci a toi , au moins je n'oublierais pas

    A++
    Christele

Discussions similaires

  1. [FPDF] afficher un nombre défini d'article par page
    Par kluck3000 dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 28/05/2008, 12h00
  2. [MySQL] Limiter le nombre d'affichage produits par page
    Par Aizen64 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/12/2007, 14h41
  3. Nombre de requêtes maximum par seconde ?
    Par Mobaladje dans le forum Requêtes
    Réponses: 3
    Dernier message: 24/09/2007, 18h07
  4. Nombre limite de formulaire par page html/php
    Par asmouma dans le forum Langage
    Réponses: 3
    Dernier message: 06/02/2007, 18h36

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