使用GA等参数的异步JS调用
Asynchronous JS call with parameters like GA
我正在尝试创建客户端JS代码,该代码将使用一些参数调用外部JS服务器端脚本,我正在查看Google Analytics示例,因为这正是我想要实现的,但我真的不知道它是如何工作的。。。
(function(i,s,o,g,r,a,m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function(){
(i[r].q = i[r].q || []).push(arguments)
},
i[r].l = 1*new Date();
a = s.createElement(o),
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXXX-Y', 'auto');
ga('send', 'pageview');
我想知道服务器端脚本是如何解析这些元素的。。我试着进行逆向工程http://www.google-analytics.com/analytics.js代码,但我不明白。
我能在某个地方找到使用相同方法显示客户端-服务器异步通信的简单片段吗?
此脚本根本不与服务器通信。这只是加载analytics.js库,该库是实际执行跟踪的文件。
跨域边界传输数据的最简单方法是动态创建图像标签,将其指向进行处理的服务器端脚本(并返回透明的1x1图像),并附加跟踪参数。您需要跟踪用于识别经常来访者的id,并将页面视图缝合到会话中,因此您需要一些可以读取、写入和更新cookie的功能。这是analystics.js文件所做的事情之一。
还有其他发送数据的方法,例如Google Analytics使用sendBeacon方法(如果可用)。这样做的优点是它不需要等待服务器响应(因此,如果浏览器卸载文档,它不会被取消)。然而,这并不总是可用的,在这些情况下,图像请求被用作后备。
因此,向服务器发送数据的最简单方法是创建图像url并动态创建图像。
img = new Image();
img.src ="http://myserver.com?param1=foo¶m2=bar";
您甚至不需要将其添加到DOM中,无论如何都会发送图像。
相关文章:
- javascript函数中的异步与同步.(Node.js)
- Typeahead.js未显示异步结果
- $(window).load在带有异步js-libs的IE中触发得太快
- 初学者异步JS-我曾经使用过“;那么“;每次我都想要价值
- 如何从异步.js系列返回结果
- 异步.js中第 169 行和第 171 行之间的代码块是什么意思
- JavascriptKango:如何在非异步函数中获取异步JS函数的返回
- 如何优化异步.js API 调用
- 加载异步 JS 然后调用函数
- NodeJS:如何使用异步.js来处理数据库中的项目列表
- 缓存来自异步函数的结果,并将其传递给异步.js中的下一个函数
- 异步.js瀑布(在数组外部定义的函数)
- 重写异步JS进程(可能使用JQuery Promise)
- 异步.js - 正确的探测方法
- 如何将函数绑定到异步.js
- 异步.js浏览器示例不完整
- 使用GA等参数的异步JS调用
- 你需要知道的关于异步JS编程
- 使用异步JS绘制DIV
- “套接字”类型错误上缺少错误处理程序:任务不是函数 - 节点.js异步.js