2010-08-05 2 views
1

Je me souviens de quelques années, j'ai utilisé un hack de quelque part pour mettre à jour les hits de lien en arrière-plan. Ce dont je me souviens c'est que j'avais un événement onclick sur mes liens qui déclenchait une fonction javascript qui tentait de charger une image ou quelque chose (c'est le hack), mais au lieu d'une image (ou quoi que ce soit) 'mysite.com/updatehits.php?id=3'javascript charger l'URL en arrière-plan

Hope this sens: S

+0

Peut-être que c'était iframe? – Codler

Répondre

4

Supposons que vous avez ce lien:

<a id="link" href="foo.html">Click for foo</a> 

vous voulez que l'utilisateur de visiter ce lien, mais appelez de manière transparente un «compteur d'accès» via ajax. Cela peut être fait comme suit:

$("#link").click(function(e) { 

    // prevent the link from getting visited, for the time being 
    e.preventDefault(); 

    //update the counter 
    $.post("counter.php" {incrementCounter: this.href}, function(resp) { 
     if(resp == "success") { 
      alert("updated"); 
     } else { 
      alert("failed"); 
     } 
     // updated. Now visit this link as normal 
     window.location.href = this.href;   
    }); 
}); 

Encore, je pense que le comptage des vues est quelque chose de mieux fait sur le côté serveur. De plus, cela causera plus que probablement un retard perceptible ennuyeux à l'utilisateur lors de la visite des liens.

+0

J'utilise actuellement une bibliothèque basée sur Google Analytics qui fait à peu près la même chose. Je ne pense pas que vous ayez réellement besoin du 'e.preventDefault()', cependant. Ceci et la valeur par défaut devraient tous les deux courir sur le clic, sans problème. +1 –

+0

Comment proposez-vous le comptage côté serveur de lien? Quelle est la méthode la plus courante pour suivre les clics? – breez

+0

Je ne sais pas quelle est la méthode la plus courante, mais vous pouvez toujours faire ressembler vos liens:/to_url? From_url =/from/url, et ensuite vous pouvez gérer leur côté serveur pour chaque page. – matts1