日期:2014-05-17  浏览次数:20710 次

大数据量引发的参数错误?
最近负责公司的广告统计工作,但一直在出问题,搞的睡觉就睡不好,回到住的地方还老想着后台日志会不会报错.....伤不起啊
 

情况是这样的:在做广告时公司市场人员会把形如下面的URL 
http://xxxx.yyy.com?aid=3&gid=4&gsid=5&mid=6发给广告商,广告上发布带有此链接的广告。广告页里面嵌套记录用户鼠标动作的js。 
   
js里面主要代码有:

JScript code
var query = $.parsequery(location.href);  
var aid=query.get('aid');  
............  
  
Collection(aid, gid,gsid, mid, ip, url, 1, cn);  // 1对应的参数是type  



JS方法Collection把获取的参数传给后台的action做处理,action会对传入的参数做判断,不符合规则的就打印出错误信息。但发现打印出的详细很奇怪
 

1.aid、gid、gsid、mid本来已经传值的参数,后台提示没有值:aid=null gid=null gsid=null mid=null

HTML code
 
原因分析:有可能是广告联盟商在发布链接时没有按规定发布(人为原因)  
  
               广告联盟商按规定发布广告了,但发布广告的形式、广告位置等通过 $.parsequery ()这个方法无法获取(程序原因)   
  
               并发量太大,收集数据出现错误(程序原因)  


 

2.Collection()中写死的值,比如type,规定的值只能从1到10,但后台打印信息却有以下四种形式的值

HTML code
12-----大于10、  
http://xxxx.yyy.com?aid=3&gid=4&gsid=5&mid=6----竟然是URL、  
null、  
2,2  


   
HTML code
原因分析:压根不知道是什么造成的  

在本机上测试、在测试库测试都没发现上述问题,所以怀疑是广告联盟商搞错,或者是数据量太大,程序处理不够完善引起的。



希望遇到过此问题的童鞋或者知道怎么解决此问题的大牛帮忙指点一下,小弟感激不尽

------解决方案--------------------
那还是同样的问题,你得确认parsequery这个东西没有问题...
感觉你这个函数应该有很多BUG