我正在编写一个小脚本来捕获链接点击并将链接的URL保存到数据库表中,以便跟踪特定页面上每个链接被点击的次数。这些链接指向外部网站。
因此,我在我的JavaScript函数中捕获了点击事件,使用jQuery发布到一个PHP页面,该页面将数据保存在MySQL中,然后JavaScript函数将用户重定向到他们所单击的链接的URL。
我遇到的问题是,由于重定向,似乎发布永远不会完成。我通过在发布回调内调用重定向来解决了这个问题,但是由于直到发布完成后才调用它,因此会添加几秒钟的延迟。我正在寻找一种方法,即使发布成功或失败,也可以立即发布数据并重定向用户。
这是当前带有解决方法的代码。它可以正常工作,但会增加延迟:
因此,我在我的JavaScript函数中捕获了点击事件,使用jQuery发布到一个PHP页面,该页面将数据保存在MySQL中,然后JavaScript函数将用户重定向到他们所单击的链接的URL。
我遇到的问题是,由于重定向,似乎发布永远不会完成。我通过在发布回调内调用重定向来解决了这个问题,但是由于直到发布完成后才调用它,因此会添加几秒钟的延迟。我正在寻找一种方法,即使发布成功或失败,也可以立即发布数据并重定向用户。
这是当前带有解决方法的代码。它可以正常工作,但会增加延迟:
function trackClicks(event)
{
var clicked = $(this).attr('href');
$.post
(
$('#track-click-post-url').attr('value'),
{
action: 'track_landing_page_clicks',
clicked_url: clicked,
nonce: $('#track-click-nonce').attr('value')
},
function( response )
{
window.location = clicked;
}
);
event.preventDefault();
}
我想要做的是这样的,但每次尝试时都无法完成:
function trackClicks(event)
{
var clicked = $(this).attr('href');
$.post
(
$('#track-click-post-url').attr('value'),
{
action: 'track_landing_page_clicks',
clicked_url: clicked,
nonce: $('#track-click-nonce').attr('value')
}
);
window.location = clicked;
event.preventDefault();
}