【发布时间】:2014-08-21 20:44:07
【问题描述】:
我正在用 PHP 和 ajax 编写我自己的实时访客计数器。
一切正常,但有一个小问题,就是每次调用 ajax 都算作一次额外访问。 我知道如何根据用户代理(例如机器人等)来分类特定的访问者,所以如果我只能在 ajax 调用中指定一个用户代理,我应该能够使 ajax 调用本身不计为一次访问。
现在,这是我的问题,如何正确指定用户代理与 Ajax 调用? 在这种特殊情况下,我想将用户代理指定为“googlebot”或类似的..
这是我的工作 ajax 代码:
<script type="text/javascript">
var interval = 5000; // 1000 = 1 second, 3000 = 3 seconds
function doAjax() {
jQuery.ajax({
type: 'POST',
url: '/codes/LiveVisitsStats/postlivecounter.php',
data: jQuery(this).serialize(),
success: function (data) {
var arr = data.split('|');
jQuery('#counterint').html(arr[0]);
jQuery('#extrainfoscounter').html(arr[1]);
},
complete: function (data) {
// Schedule the next
setTimeout(doAjax, interval);
}
});
}
setTimeout(doAjax, interval);
</script>
一些额外的信息/澄清.. 跟踪代码本身可以完美运行。 问题仅出现在前端 UI 中,其中使用 ajax 动态显示统计信息,因为每次 ajax 调用更新页面上的统计信息时,它还会添加当前用户查看 ajax 驱动的 UI 的访问计数。
【问题讨论】:
-
当 UA 字符串可以被欺骗时,为什么还要依赖它?
-
我已经在使用基于 UA 的过滤器来消除统计数据中的机器人流量,所以我不妨将机器人代理应用到 ajax 调用本身,至少这是我的想法
标签: javascript jquery ajax