开发者

javascript load url in background

I remember a couple of years a go, I used an hack from somewhere to update link hits in the background. What I remember is that I had an onclick event on my links that triggered a javascript function which tried to load an image or something (this is the hack), but instead of an image (or whatever it was) you put in an url like 'mysite.com/updatehits.php?id=3'

Hope this makes sense :S开发者_如何学Python


Say you have this link:

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

You want the user to visit that link, but transparently call a 'hit counter' via ajax. That can be done like so:

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

Still, I think counting views is something best done on the server side. Plus, this will more than likely cause an annoying perceptible delay to the user upon visiting links.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜