Odjavel Posted December 7, 2009 Share Posted December 7, 2009 Bonjour,Je suis en train d'essayer de créer un module qui irait chercher une info sur un site tiers, grâce à un code PHP proposé par ce site. L'info traitée s'afficherait ensuite dans un bloc normal d'une des 2 colonnes du FO.Le problème, c'est que le temps de chargement de ma page va dépendre du temps de réaction du site tiers, et si jamais celui-ci devient inaccessible ou trop lent pendant un temps, mon site en sera directement impacté.Je voudrais donc savoir s'il existe un moyen de ne charger un module qu'après le chargement complet et l'affichage de ma page.J'avais pensé à 2 solutions : soit inclure une iframe dans le bloc d'affichage du module, soit déclencher après le chargement de la page un appel automatique en Ajax pour charger et afficher les infos voulues.Qu'en pensez-vous ? Quelqu'un aurait-il une solution déjà fonctionnelle ?Merci Link to comment Share on other sites More sharing options...
Yoya Posted December 8, 2009 Share Posted December 8, 2009 Hello,Moi je ferais un appel en asynchrone avec Ajax et un load dynamique avec JQuery : comme çà, ton site ne sera pas impacté par la latence potentielle du site tiers.Cdlt,Pierre. Link to comment Share on other sites More sharing options...
Odjavel Posted December 8, 2009 Author Share Posted December 8, 2009 Merci de ta réponse.Héé béé... J'ai jamais fait ça, ça va être chaud. J'avoue, ça sort nettement de mes compétences actuelles. Je me débrouille toujours en PHP pour faire ce que je veux, mais JQuery, franchement, j'y connais rien.Si tu connais un tuto bien fait, je suis preneur.Sinon, que penses-tu de la solution iframe ? Un peu plus barbare, j'en conviens, mais est-ce que le résultat serait le même en terme de non ralentissement du chargement de ma page ?Merci encore Link to comment Share on other sites More sharing options...
Yoya Posted December 8, 2009 Share Posted December 8, 2009 Pour la partie JQuery te bile pas, c'est peanuts. Une fois les datas récupérées après ton appel Ajax, la partie JQuery qui n'est qu'une librairie pour faciliter la manipulation de Javascript ressemblera à çà :$('#monDivCible').html(data_renvoyees_par_ajax);Donc pas besoin de tuto pour çà l'ami Pour ta question concernant l'Iframe, d'après moi oui ton site sera loader, mais tu resteras avec un joli sablier en guise de pointer souris temps que l'iframe ne serat pas chargée (à tester tout de même).Cdlt,Pierre. Link to comment Share on other sites More sharing options...
Odjavel Posted December 8, 2009 Author Share Posted December 8, 2009 Bon, je vais creuser ça.Comme dirait l'autre, "j'y vais mais j'ai peur..." Merci pour ton aide. Link to comment Share on other sites More sharing options...
Yoya Posted December 8, 2009 Share Posted December 8, 2009 C'est quoi le contenu que tu cherches à loader ? (mp le moi si c'est confidentiel)Cdlt,Pierre. Link to comment Share on other sites More sharing options...
Yoya Posted December 8, 2009 Share Posted December 8, 2009 Bon voici comment faire pour le load Ajax/JQuery ...Tout d'abord créer un fichier proxi.php comme celui ci : <?php echo file_get_contents('http://www.google.fr'); ?> Dans le .tpl de ton module : {literal} < script> $(document).ready(function(){ $.ajax( { url: "./modules/blockmonmodule/proxi.php", cache: false, success: function(html) { $('#divRes').append(html); } } ); }); < /script> {/literal} Et voilou ...La seul restriction c'est que ton hébergement accepte le load de fichier Cross Domain ... tu verras bien.Cdlt,Pierre. Link to comment Share on other sites More sharing options...
Odjavel Posted December 8, 2009 Author Share Posted December 8, 2009 Sympaaaaa ! Donc, si j'ai besoin de traiter les données que je download, je le fais dans proxy.php, en j'envoie le résultat final avec un simple echo.Juste pour comprendre : techniquement, l'appel Ajax se fera après le chargement complet de ma page, ou pendant mais sans le ralentir ?Je vais tester ça dès que possible, et je ferai un retour ici. Au besoin, je te prends au mot, je t'enverrai un MP. Merci de le proposer, et merci pour ton aide !! Link to comment Share on other sites More sharing options...
Yoya Posted December 8, 2009 Share Posted December 8, 2009 Hello,Tu peu traiter les données coté php en effet.Techniquement je fais l'appel Ajax une fois la page chargée grace à $(document).ready() et ensuite l'appel Ajax est traité de manière asynchrone, c'est à dire que une fois que la réponse tombe (meme au bout de 10mn), la fonction success: function(html){$('#divRes').append(html);} est exécutée.Faut juste espérer que ton hébergeur accepte la manip ... auquelle cas je ne connais pas d'autres possiblités de Cross Domain... donc pa ni Ajax.Cdlt,Pierre. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now