Webmaster Hub: Le moyen le plus discret de lancer un appel Ajax après le chargement d'une page - Webmaster Hub

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Le moyen le plus discret de lancer un appel Ajax après le chargement d'une page

#1 L'utilisateur est hors-ligne   Locace 

  • Groupe : Webmaster Régulier
  • Messages : 80
  • Inscrit(e) : 09-décembre 06
  • Genre:Homme
  • Localisation:Hong Kong
  • Société:Indépendant - Création de sites web

Posté 22 juillet 2011 - 10:15

Bonjour,

Je suis en train de créer une page assez légère. Sauf le bloc social qui repose beaucoup sur les API de Facbook, Twitter et Mailchimp.
Ce bloc plombe littéralement le temps de chargement de la page.

Mon idée de base est donc de charger la page sauf ce bloc. Puis de charger de bloc via un appel Ajax.

Le souci est qu'en faisant ça, le petit sablier à coté du curseur et dans l'onglet continuent de tourner. Le visiteur a donc l'impression que la page n'a pas fini de charger. Vous voyez ce que je veux dire ?

Comment feriez pour faire un appel ajax le plus discret possible ?

J'utilise jquery.

Merci beaucoup.
Ce que je fais : Créations de bons sites Internet
Je peux vous aider avec : CSS, Html, eZ Publish, Wordpress ...
Intéressé par CSS3, HTML5, les interfaces, le futur, ...
0

#2 L'utilisateur est hors-ligne   SStephane 

  • Groupe : Fondateur
  • Messages : 460
  • Inscrit(e) : 06-février 09
  • Genre:Homme
  • Localisation:Grabels

Posté 22 juillet 2011 - 12:32

$(document).ready(function(){
  $.ajax({
      url: "bloc.php",
      dataType: "html",
      success: function(_html){
         $('#ton_bloc').html(_html);
      }
   });
});


tout simplement non ?
_AT_Montpellier
L'héroïsme, c'est la seule manière de devenir célèbre quand on a pas de talent (l'homme aux initiales douteuses)
Venez tester votre niveau de compétence en PHP :-)
0

#3 L'utilisateur est hors-ligne   Locace 

  • Groupe : Webmaster Régulier
  • Messages : 80
  • Inscrit(e) : 09-décembre 06
  • Genre:Homme
  • Localisation:Hong Kong
  • Société:Indépendant - Création de sites web

Posté 25 juillet 2011 - 10:45

Voir le messageSStephane, le 22 juillet 2011 - 12:32, dit :

$(document).ready(function(){
  $.ajax({
      url: "bloc.php",
      dataType: "html",
      success: function(_html){
         $('#ton_bloc').html(_html);
      }
   });
});


tout simplement non ?


Hello
Merci pour la réponse. En fait c'est la technique que j'utilise mais elle ne permet pas de cacher le petit sablier du curseur ni le sablier dans l'onglet du navigateur.
Je me demandais si il y a quelque chose de plus discret.
Ce que je fais : Créations de bons sites Internet
Je peux vous aider avec : CSS, Html, eZ Publish, Wordpress ...
Intéressé par CSS3, HTML5, les interfaces, le futur, ...
0

#4 L'utilisateur est hors-ligne   SStephane 

  • Groupe : Fondateur
  • Messages : 460
  • Inscrit(e) : 06-février 09
  • Genre:Homme
  • Localisation:Grabels

Posté 25 juillet 2011 - 11:29

Peux tu poster la source du html retourné par la requête ajax ou encore mieux, montrer ta page de test qu'il soit plus facilement possible de te proposer une solution en déterminant quel process est en cours ? A l'aveugle, c'est pas évident ;)
_AT_Montpellier
L'héroïsme, c'est la seule manière de devenir célèbre quand on a pas de talent (l'homme aux initiales douteuses)
Venez tester votre niveau de compétence en PHP :-)
0

#5 L'utilisateur est hors-ligne   Locace 

  • Groupe : Webmaster Régulier
  • Messages : 80
  • Inscrit(e) : 09-décembre 06
  • Genre:Homme
  • Localisation:Hong Kong
  • Société:Indépendant - Création de sites web

Posté 26 juillet 2011 - 02:59

Bah mon resultat est un bloc html tout ce qu'il y a de plus classique.
Disons que mon souci vient pas trop de mon code car il fonctionne.

En fait je voulais plutot savoir si il y avait des techniques plus avancées.

Edit : on peut surement s'inspirer de la facon dont Facebook charge son SDK javascript de manière asynchrone.

(function() {
        var e = document.createElement('script');
        e.async = true;
        e.src = document.location.protocol +
        '//connect.facebook.net/en_US/all.js';
        document.getElementById('fb-root').appendChild(e);
    }());


De ce que je comprend, ça permet de charger un script de manière décalée. Par contre je n'ai pas essayé d'adapter ça pour lancer une requête PHP. Si quelqu'un a testé, ce serait intéressant d'en savoir plus.

Ce message a été modifié par Locace - 26 juillet 2011 - 09:25.

Ce que je fais : Créations de bons sites Internet
Je peux vous aider avec : CSS, Html, eZ Publish, Wordpress ...
Intéressé par CSS3, HTML5, les interfaces, le futur, ...
0

#6 L'utilisateur est hors-ligne   Portekoi 

  • Calimérosateur / Dictationneur
  • Groupe : Admin
  • Messages : 3 692
  • Inscrit(e) : 12-janvier 05
  • Genre:Homme
  • Localisation:Meaux
  • Société:CGD

Posté 26 juillet 2011 - 08:21

Bonjour,

Je ne me souviens plus de la syntaxe mais avec jquery, tu as un argument qui spécifie le type d'appel comme un "script".

Je regarde sur Google.


Portekoi
0

#7 L'utilisateur est hors-ligne   SStephane 

  • Groupe : Fondateur
  • Messages : 460
  • Inscrit(e) : 06-février 09
  • Genre:Homme
  • Localisation:Grabels

Posté 26 juillet 2011 - 10:23

jQuery effectue déjà les requêtes Ajax en asynchrone à moins que tu ne le spécifies dans l'une des propriétés de l'objet (async: true|false de mémoire).
Sinon c'est dataType dont tu parles qui peut prendre comme valeur xml|html|json|jsonp|script, essaye, mais je pense pas que ça résolve ton souci.

Quoiqu'il en soit, on n'en sait pas davantage sur ce qui provoque l'apparition du sablier, d'où ma demande :)
Perso, je n'ai pas de doute sur le fait que ton code fonctionne...mais sans débogueur, j'ai un peu (beaucoup) la flemme de chercher une solution à l'aveugle pour ton souci.
_AT_Montpellier
L'héroïsme, c'est la seule manière de devenir célèbre quand on a pas de talent (l'homme aux initiales douteuses)
Venez tester votre niveau de compétence en PHP :-)
0

#8 L'utilisateur est hors-ligne   Locace 

  • Groupe : Webmaster Régulier
  • Messages : 80
  • Inscrit(e) : 09-décembre 06
  • Genre:Homme
  • Localisation:Hong Kong
  • Société:Indépendant - Création de sites web

Posté 26 juillet 2011 - 11:25

Oui tout ça je sais mais encore une fois je voulais simplement savoir si quelqu'un connaissait une façon très légère et très discrète de lancer une requête assez lourde.
Pas trop besoin de mon code ici, on est plus dans la théorie.

Mais peu importe. Ce sujet est plus une bouteille à la mer qu'autre chose.

Si un jour vous avez une idée je suis preneur, sinon merci quand même.

Ce message a été modifié par Locace - 26 juillet 2011 - 11:26.

Ce que je fais : Créations de bons sites Internet
Je peux vous aider avec : CSS, Html, eZ Publish, Wordpress ...
Intéressé par CSS3, HTML5, les interfaces, le futur, ...
0

#9 L'utilisateur est hors-ligne   SStephane 

  • Groupe : Fondateur
  • Messages : 460
  • Inscrit(e) : 06-février 09
  • Genre:Homme
  • Localisation:Grabels

Posté 26 juillet 2011 - 11:37

tu peux faire ça dès que le dom est initialisé, jusqu'à ce que ta requête soit terminée, sans savoir de trop si ça fonctionne :

$(document).ready(function(){
  document.getElementsByTagName('body')[0].style.cursor = 'default';
});



et remettre en 'auto' dans le callback de ton appel ajax; avec un peu de chance... (peut être moyen d'y accéder via jQuery au cursor, je ne sais pas)
_AT_Montpellier
L'héroïsme, c'est la seule manière de devenir célèbre quand on a pas de talent (l'homme aux initiales douteuses)
Venez tester votre niveau de compétence en PHP :-)
0

#10 L'utilisateur est hors-ligne   Bigb06 

  • Groupe : Hubmaster
  • Messages : 260
  • Inscrit(e) : 16-août 07
  • Genre:Homme
  • Localisation:Carro, Martigues
  • Société:Allogarage

Posté 27 juillet 2011 - 18:44

Voila un article de Steve Souders, un ingénieur de l'équipe Google Performance, et qui détaille toutes les possibilités pour charger du code (ou autre) de façon asynchrone avec un tableau récapitulatif sur les différents indicateurs de chargement:
http://www.stevesoud...thout-blocking/
Rechercher un garage auto grâce aux avis des internautes : Allogarage.fr
Garages à Nice
Garages à Paris
0

#11 L'utilisateur est hors-ligne   Locace 

  • Groupe : Webmaster Régulier
  • Messages : 80
  • Inscrit(e) : 09-décembre 06
  • Genre:Homme
  • Localisation:Hong Kong
  • Société:Indépendant - Création de sites web

Posté 28 juillet 2011 - 02:08

Great I will read this soon.
Ce que je fais : Créations de bons sites Internet
Je peux vous aider avec : CSS, Html, eZ Publish, Wordpress ...
Intéressé par CSS3, HTML5, les interfaces, le futur, ...
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)