Jump to content

Charger un module en dernier


Odjavel

Recommended Posts

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

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

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

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

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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...