Ogu*_*gic 5 javascript events tracking google-analytics
网络上有很多实时网络统计服务(w3counter-histats-gostats)。它们只在请求页面时计数一次,但我想做的是跟踪javascript函数/事件,因为我的网站是完全ajax的。所以我想要类似谷歌分析的事件跟踪器(http://code.google.com/intl/en/apis/analytics/docs/gaJS/gaJSApiEventTracking.html),但实时,而且非常简单。它可以托管或只是一个 php 脚本。谢谢。
实现你自己的并不难。当事件发生时,您只需向服务器发送请求,例如: ,等。tracker.gif?action=create&what=sthtracker.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");
Run Code Online (Sandbox Code Playgroud)
(注意:window.onerror在 Safari 中不可用)
更新
这是 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
}
}
Run Code Online (Sandbox Code Playgroud)
如果您使用 jQuery,则可以在$.ajaxSuccess活动期间运行代码
| 归档时间: |
|
| 查看次数: |
10229 次 |
| 最近记录: |