はい、私はGoogleAnalyticsについて知っています。サイト全体の指標に使用しており、個々のリンクを追跡できることはわかっています。ただし、非常に具体的なリンクの追跡ソリューションが必要であり、その追跡データをWebアプリケーションでリアルタイムに利用できるようにする必要があるため、独自のソリューションを作成しました。
jQuery:
$.fn.track = function () {
var source, url, name, ref, $this;
$this = $(this);
if (window.location.search.substring(1) != '') {
source = window.location.pathname + "?" + window.location.search.substring(1);
} else {
source = window.location.pathname;
}
url = jQuery.URLEncode($this.attr('href'));
name = $this.attr('name');
ref = jQuery.URLEncode(source);
$this.live('click', function (click) {
click.preventDefault();
$.post('/lib/track.php', {
url: url,
name: name,
ref: ref
}, function () { window.location = $this.attr('href'); });
});
};
... jQuery URLEncodeプラグイン(http://www.digitalbart.com/jquery-and-urlencode/)を使用します。
現在、このコードは私のPHPバックエンドと私のマシンで正常に機能しますが、他のすべての人にとって確実に機能するわけではないようです。jQueryを介して渡されたパラメーターが渡されない場合があり、その結果、データベースに、、またはのないレコードが生成さname
れurl
ますref
。
私の人生では、なぜこれが起こっているのか理解できません。$.post
データベースにレコードがあるため(PHPでは、タイムスタンプとともにリクエストのIPも記録します)、がトリガーされていることはわかっていますが、多くの場合、PHPスクリプトは$_POST
jQueryから空白の変数を受け取っています。
職場でアクセスできるすべてのブラウザーでライブでテストしましたが、すべて正常に動作します。ただし、(私のコンピューターではなく)作成されたすべてのレコードの約75%が空白として表示されます(ほとんどのレコードは私と同じブラウザーを使用しています)。
なぜこれが起こっているのでしょうか?