2010-08-05 2 views
1

Я помню пару лет назад, я использовал хак откуда-то, чтобы обновить ссылки в фоновом режиме. Я помню, что у меня было событие onclick на моих ссылках, которое вызвало функцию javascript, которая пыталась загрузить изображение или что-то в этом роде (это взломать), но вместо изображения (или как бы там ни было) вы добавляете URL-адрес, например 'mysite.com/updatehits.php?id=3'javascript load url in background

Надеется, что это имеет смысл: S

+0

Возможно, это был iframe? – Codler

ответ

4

Допустит, вы по этой ссылке:

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

вы хотите пользователь посетить эту ссылку, но прозрачно называть «хит-счетчик» через ajax. Это можно сделать так:

$("#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;   
    }); 
}); 

Все еще, я думаю, что подсчет просмотров - это что-то лучшее на стороне сервера. Плюс, это более чем вероятно приведет к раздражающей ощутимой задержке для пользователя при посещении ссылок.

+0

Я фактически использую библиотеку на основе Google Analytics, которая делает примерно то же самое. Я не думаю, что вам действительно нужен 'e.preventDefault()'. Это и значение по умолчанию должны запускаться при нажатии, без проблем. +1 –

+0

Как вы предлагаете подсчитать ссылку сервера? Каков наиболее распространенный метод отслеживания кликов? – breez

+0

Я не знаю, какой самый распространенный метод, но вы всегда можете сделать ваши ссылки похожими на это:/to_url? From_url =/from/url, а затем вы можете обрабатывать их на стороне сервера для каждой страницы. – matts1