AJAX

Pourrais tu m'en expliquer brièvement le fonctionnement ??

PS: Merci en tout cas pour cette première réponse rapide !! :slight_smile:

-----Message d'origine-----
De : spip-bounces@rezo.net [mailto:spip-bounces@rezo.net] De la part de had
Envoyé : mardi 18 décembre 2007 07:59
À : spip@rezo.net
Objet : Re: [Spip] AJAX

TESSIER Nicolas a écrit :

Petit UP !!

J'avance petit à petit : http://www.korx-crew.com/test/spip/

Cependant ceci s'accompagne de son lot de problèmes. Pour "m'entrainer" j'ai utilisé un morceau de javascript assez basique me semble t-il :

<script type="text/javascript"><!--

$(document).ready(function () {

$("a.load")
  .click(function() {
    $("#ajax_refresh")
    .load(this.href);

    return false;
  });

});

// --></script>

Auquel je fais appel via une class="load" sur mes liens.

Source : http://www.jquery.info/Un-lien-vers-une-page-qui

Cela fonctionne assez bien sous firefox/Opera mais pas ou mal sous IE6/7, ce qui ne devrait logiquement pas être le cas puisque Jquery est cencé fonctionner partout, j'en déduis donc que mon code est foireux ou mal appliqué !!

Donc à chaud voici mes problèmes :

- quand on clique sur plusieurs liens d'affilé il semble que ça bug puisque ma div qui se raffrachi via AJAX se recharge a la volée plusieures fois. SI quelqu'un sait pourquoi je suis preneur de toute amélioration.

- sous IE6/7 mes liens fonctionnent sur tout ce qui est chargé au démarrage de mon sommaire.html. En revanche les liens faisant partie des morceaux rajoutés via le refresh de ma DIV ne marchent pas et m'envoient donc directement sur le squelette tel quel (ce qui est normal vu que je n'ai pas encore fait de squelette alternatif pour les gens ayant désactivés Javascript). Ceci me laissant penser que le javascript n'est donc pas pris en compte sur ces liens. Meme chose si quelqu'un sait comment faire je suis preneur.

- je voudrais agrémenter mon script avec un loader mais je ne sais hélas pas comment en mettre un en place.

- enfin si quelqu'un connaît un code me permettant de faire la meme chose mais encore plus rapide et optimisé je suis toujours preneur. Je précise en revanche que je souhaite utiliser le framework de spip ( Jquery ).

Cordialement.

PS : désolé de toutes ces questions mais j'ai commencé AJAX hier :smiley:

Nico 2 ( from Nantes )

salut,

un truc dans ce genre là ? cette fonction est pas terrible, mais ça devrait aider :wink: je pense qu'il a matière à optimiser !

$("a.load").click(
        function() {
        $(this).attr("href", function() {
            $("#tralala").css("background","url(ajax-loader.gif)
no-repeat");
            lien=this.href.replace("spip.php?", "spip.php?ajax-");
            $(this).attr("href", plien );
            $("#tralala").load(this.href, , function()
            {$(this).css("background","url(blank.gif) no-repeat");});
            lien2=this.href.replace("spip.php?ajax-", "spip.php?");
            $(this).attr("href", lien2 );
            });
        return false;
    });

cordialement,
a+ had
_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/ irc://irc.freenode.net/spip FAQ : http://www.spip.net/fr\_article1054\.html

TESSIER Nicolas a écrit :

Pourrais tu m'en expliquer brièvement le fonctionnement ??

PS: Merci en tout cas pour cette première réponse rapide !! :slight_smile:
  

euh ...
qd je click sur a.load, charge dans le fond tralala le logo loader, puis transforme l'url du lien en lien spécial pour
ajax, charge le lien dans la div tralala, et une fois que c'est fini, remplace le loader par autre chose,
et remet le lien dans sa version de base (pour pouvoir recliquer dessus). voilà en gros :wink:

$("a.load").click(
        function() {
        $(this).attr("href", function() {
            $("#tralala").css("background","url(ajax-loader.gif)
no-repeat");
            lien=this.href.replace("spip.php?", "spip.php?ajax-");
            $(this).attr("href", plien );
            $("#tralala").load(this.href, , function()
            {$(this).css("background","url(blank.gif) no-repeat");});
            lien2=this.href.replace("spip.php?ajax-", "spip.php?");
            $(this).attr("href", lien2 );
            });
        return false;
    });

cordialement,
a+ had
_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/ irc://irc.freenode.net/spip FAQ : http://www.spip.net/fr\_article1054\.html
_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : FAQ webmestre - SPIP