好的,这是我一直在寻找的目标.
众所周知,大多数广告和分析公司使用所谓的"像素"代码来跟踪网站视图,交易,转换等.
我对它是如何工作有一个大概的想法,问题是如何实现它.跟踪代码由几个部分组成.
跟踪代码本身.这是用户在该<head>部分的网页上插入的代码.此代码的主要目标是设置一些客户特定的变量并调用该*.js文件.
*.js文件.此文件包含CRUD(创建/读取/更新/删除)cookie的所有魔力,跟踪用户的事件以及与网页的交互.
像素代码.这是一个<img>标记,其中srcatribute指向一个图像*.gif(例如)文件,该文件获取页面上收集的所有参数,并将它们存储在数据库中.
例:
WordPress像素代码: <img id="wpstats" src="http://stats.wordpress.com/g.gif?host=www.hostname.com&list_of_cookies_value_pairs;" alt="">
Google Analitycs:
http://www.google-analytics.com/__utm.gif?utmwv=4&utmn=769876874&etc
现在,很明显,*.gif请求必须达到服务器端脚本语言才能读取参数数据并将其存储在数据库中.
有谁知道如何在Zend中实现这个?
更新
我感兴趣的另一件事是:如何避免用户的浏览器加载缓存*.gif?一个随机参数值会起作用吗?示例:每个请求src="pixel.gif?nocache=random_number"的nocache参数值都不同.
如果我使用Ajax发送请求,这个请求需要很长时间.....如果我想发送anther请求我该怎么办?
当前行为第二个请求(我做)等到第一个请求得到响应.
注意: 我想在整个应用程序上执行此行为(任何新请求立即执行而不是等待旧的首先完成)我的应用程序使用(Ajax + PHP + jQuery + Symfony)
假设这是第一个请求需要很长时间:
$.ajax
({
type: "GET",
url: url1,
success: function (html)
{
// do some thing
}
});
Run Code Online (Sandbox Code Playgroud)
在任何时候我都希望这个请求执行并终止第一个请求.
$.ajax
({
type: "POST",
url: url,
success: function (html)
{
// do some thing else
}
});
Run Code Online (Sandbox Code Playgroud)
var xhrReq;
xhrReq = $.ajax(...);
// then if you want to stop the rqest and exit use :
xhrReq.abort();
Run Code Online (Sandbox Code Playgroud)