gpt4 book ai didi

javascript - 实时 Javascript 事件跟踪(Javascript 统计)

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:38:18 29 4
gpt4 key购买 nike

网络上有很多实时网络统计服务(w3counter-histats-gostats)。它们只在页面被请求时计数一次,但我想做的是跟踪 javascript 函数/事件,因为我的网站完全-ajax。所以我想要类似 google analytic 的事件跟踪器 (http://code.google.com/intl/en/apis/analytics/docs/gaJS/gaJSApiEventTracking.html) 的东西,但它是实时的,而且非常简单。它可以托管或只是一个 php 脚本。谢谢。

示例事件

  • 用户创建了一些东西
  • 用户删除了一些东西
  • 发生ajax错误
  • 发生浏览器错误
  • 用户登录

我找到了我的答案看看

最佳答案

实现您自己的并不难。您只需在事件发生时向服务器发送请求,例如:tracker.gif?action=create&what=sth, tracker.gif?action=error&what=k_is_undefined

然后您解析服务器日志以获取统计信息。 (或者您通过 tracker.php?action=create&what=sth 将您的请求直接发送到数据库中)

由于您控制着站点,因此现在可以在用户登录或 ajax 请求失败时轻松发出这些请求。

对于错误处理,您可以使用 window.onerror:

// send a request about an event to the server
function fireEvent(action, message, options) {
var loggerUrl = "/tracker.gif", parameters;
options = options || {};
options.url = options.url || window.location.href;
options.user_agent = navigator.userAgent;
options.message = message;
for (var i in options) {
if (options.hasOwnProperty(i)) {
parameters += "&" + i + "=" + encodeURIComponent(options[i]);
}
}
new Image().src = loggerUrl + parameters;
}

// log script errors
window.onerror = function(errorMessage, url, line) {
fireEvent("error", errorMessage, {
url: url,
line: line
});
return true;
};

// example event on the page
fireEvent("ajaxError", "XY page failed to load");

(注意:window.onerror 在 safari 中不可用)


UPDATE

下面是 PHP 解析器的概念证明:

$i = 1;
$d = file_get_contents("log.txt");
$requests = explode("\n", $d);
foreach ($requests as $req) {
$pos = strpos($req, "tracker.gif");
if ($pos === false) continue;
$start_pos = strpos($req, "?", $pos);
$end_pos = strpos($req, " ", $start_pos); // can also be " HTTP"
$length = $end_pos - $start_pos;
$req = substr($req, $start_pos+1, $length);
$exprs = explode("&", $req);
echo $i . ".<br>"; // request number
$i += 1;
foreach ($exprs as $expr) {
list($name, $value) = explode("=", $expr);
echo $name . " =>" . $value . "<br>"; // key => value
}
}

关于javascript - 实时 Javascript 事件跟踪(Javascript 统计),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3208209/

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