AJAX GET 竞争条件?

2024-03-09

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

<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 服务器,告知发生了事件。

(另外,我希望我会得到至少一个答案,即简单地从服务器端而不是客户端跟踪新页面加载。这对于这个问题来说不是一个可接受的答案。我正在寻找诸如如何谷歌分析'trackPageview无论是否加载新页面,该函数都适用于锚标记的单击事件。)


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

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AJAX GET 竞争条件? 的相关文章

随机推荐

  • 如何在 Ruby 中使用 selenium-webdriver/capybara 截取完整浏览器页面及其元素的屏幕截图?

    我正在研究屏幕截图自动化 特别是 我正在努力实现以下目标 提示用户提供网站不同页面的链接 X 提示用户输入类名 Y 我应该能够访问网站 X 登录页面 提供登录详细信息 假设它们已知 单击 提交 按钮 这应该将我重定向到 主页 页面 然后 我
  • AppHarbor可以在构建过程中设置条件编译符号吗?

    AppHarbor可以在构建过程中设置条件编译符号吗 也许很简单 AppHarbor 我有一些测试无法在服务器上运行 它们依赖于测试数据文件 如果 AppHarbor 可以设置条件编译符号 那么当该符号存在时 我可以在测试中添加 Ignor
  • 带自定义滚动条的 Jquery 选项卡式导航

    请参阅新的 更新的问题 https stackoverflow com questions 7423874 jquery navigation and jscrollpane work at first but not after clic
  • 使时间序列在轴上显示最后一个日期?

    所以在 Chart js 中我有一个基于日期范围的时间序列 该图表无法将所有日期显示为轴标签 因此它显示了合理的选择 它始终在左侧显示第一个日期 但并不总是在轴的右端显示最后一个日期 例如 我的日期范围可以是从 1 月 1 日到 7 月 3
  • Java 支持柯里化吗?

    我想知道是否有任何方法可以在 Java 中实现这一点 我认为如果没有对闭包的原生支持 这是不可能的 Java 8 2014 年 3 月 18 日发布 确实支持柯里化 示例 Java 代码发布于Missingfaktor 的回答 https
  • 如何收集任何 java 进程的堆转储

    我是 Heaps 新手 谁能建议我如何获取任何 java 进程 如 Jmeter 的堆转储 我读到了有关 jmap 命令的内容 但我不知道在哪里以及如何执行 编写它 在 Eclipse 或 cmd 中 这可能是一个非常基本的问题 但仍然需要
  • cv::findContours 返回的轮廓是否具有一致的方向?

    我正在使用 OpenCVcv findContours http docs opencv org 2 4 modules imgproc doc structural analysis and shape descriptors html
  • 登录时 BjyAuthorize 未检测到角色

    我正在使用 ZF2 Doctrine ORM 和 BjyAuthorize 问题是 当我登录时 身份的 getRoles 方法返回空 class User implements UserInterface ProviderInterface
  • Oracle - select 语句中的动态列名

    问题 是否可以根据结果集中的值更改 select 语句中的列名称 例如 如果一个year结果集中的值小于1950 为列命名OldYear 否则命名该列NewYear The year结果集中的值保证所有记录都相同 我认为这是不可能的 但这是
  • 如何防止用户使用 dotnet core 和 RESTful API 访问其他用户的数据?

    我正在尝试找到一个没有被广泛讨论的简单问题的最佳解决方案 我的应用程序有很多可以创建和编辑数据的用户 用户应该只查看和编辑他的数据 而不是其他人的数据 想想爱丽丝 她有一家餐厅 A 有一个菜单 MenuA 而鲍勃有一家餐厅 B 有一个菜单
  • 软件可扩展性测试是否有明确的模式?

    我最近对识别软件可扩展性测试的模式非常感兴趣 由于不同软件解决方案的本质不同 可伸缩性测试软件问题的良好解决方案似乎与设计和实现软件的问题一样多 对我来说 这意味着我们可能可以为此类广泛使用的测试提炼出一些模式 为了消除歧义 我会提前说明我
  • 在Mysql表中保存座位安排

    你好 有人可以建议我一种保存座位安排的方法 它是 mysql 表中的 nXm 矩阵 以下是我们如何生成 nXm 表 管理员指定总线的行数和列数 管理员选择矩阵的特定元素是否是 Seat Passage Sleeper 注 一个卧铺占用2个元
  • didSelectRowAtIndexPath 未调用到 cellForRowAtIndex 的 UIButton

    我知道这里有很多关于这个问题的重复项 但我的要求是我在一个单元格上添加了 2 个 UIButtons 并且这两个按钮将打开两个不同的视图 如果我将属性 userInteractionEnabled 设置为 YES 那么它不会从下面的代码中获
  • 使用 Windows 成像组件 (WIC) 的 Delphi 2007

    我需要在Delphi 2007中读取一些大约1 7mb的图片并将其从jpg转换为bmp 有些图片被剪切 灰度或转换后最差 我进行了搜索 但没有找到在 delphi 2007 中添加像 TWicImage 这样的 WIC 例程的技巧 我在某处
  • 在 JSR-310 中计算修改后的儒略日

    如何从 JSR 310 类计算修改后的儒略日 例如LocalDate 在 JDK 8 中 具体来说 这是计算连续计算天数 http en wikipedia org wiki Julian day被称为 修改儒略日 而不是日期儒略历系统 h
  • 当我使用 pip 安装任何包时出现 WinError 10013

    我试图在 Windows 上的 Python 环境中安装软件包 每次这样做时 pip install pacakgename 我收到此错误 Retrying Retry total 4 connect None read None redi
  • 如何在 Visual Studio 中使用 C++ shlwapi 库?

    我的程序使用PathFileExistsW https learn microsoft com windows win32 api shlwapi nf shlwapi pathfileexistsw函数来自shlwapi h includ
  • 控制器如何接收 HttpPost 方法上的参数?

    从控制器中取出此代码片段 例如 public ActionResult Login if User Identity IsAuthenticated return RedirectToAction Index Home else retur
  • 已移至 Tensorflow 2.0,训练现在在第三步后挂起

    最近我决定从 Tensorflow GPU 变体 版本 1 14 迁移到当前版本 2 0 我当前的设置是 Tensorflow GPU 变体 2 0 库德恩7 6 4 CUDA 10 Python 3 6 集成开发环境 Visual Stu
  • AJAX GET 竞争条件?

    我试图以类似于以下的方法跟踪在我的网站上单击链接时的事件 a href example class track Example a