gpt4 book ai didi

javascript - AJAX GET 竞争条件?

转载 作者:行者123 更新时间:2023-11-29 18:35:52 25 4
gpt4 key购买 nike

我正尝试以类似于以下的方法在我的网站上单击链接时跟踪事件。

<a href="/example" class="track">Example</a>

<script type="text/javascript">
jQuery(function($) {
// track clicks on all anchor tags that require it
$('a.track').live('click', function(e) {
// send an AJAX request to our event tracking URL for the server to track it
$.get('/events/track', {
url: $(this).attr('href'),
text: $(this).text()
});
});
});
</script>

我遇到的问题是新页面加载会中断 AJAX 请求,因此有时不会跟踪这些事件。我知道 Google Analytics 有一个 _trackPageview 函数可以附加到 onclick 事件,但这似乎不是问题。我想知道他们的调用与我看到的竞争条件有什么不同,而 GA 没有。例如:

<a href="/example" onclick="javascript:pageTracker._trackPageview('/click/example');">Example</a>

请注意,我并不担心 AJAX 请求的结果...我只是希望它通过事件发生的事实来 ping 服务器。

(另外,我希望我至少会得到一个答案,说只是从服务器端而不是客户端跟踪新页面加载。对于这个问题,这不是一个可接受的答案。我'我正在寻找类似 Google Analytics 的 trackPageview 函数如何处理 anchor 标记的点击事件的东西,而不管正在加载的新页面如何。)

最佳答案

通过像 Charles 这样的代理运行谷歌的 trackPageview 方法显示调用 trackPageview( ) 从谷歌的服务器请求一个像素集,这是大多数分析包的方式最终实现这些功能(Omniture 也是如此)。

基本上,为了避免异步请求未完成,他们让客户端请求图像并在服务器端处理这些请求中传递的参数。

为了您的目的,您需要实现同样的事情:编写一个实用程序方法从您的服务器请求图像,通过 URL 参数(例如/track.gif?page)传递您感兴趣的信息=foo.html&link=Click%20Me&bar=baz);然后服务器会将这些参数记录在数据库中并发回 gif。

之后,它只是对您收集的数据进行切片和切 block 以生成报告。

关于javascript - AJAX GET 竞争条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3214023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com