Skip to content

Commit 4db0fed

Browse files
author
shengyonggen
committed
修复点击图在某些特殊情况下采集到的选择器不一致但对应的是同一个元素导致的点击图数据计算错误
1 parent c3838aa commit 4db0fed

File tree

8 files changed

+84
-10
lines changed

8 files changed

+84
-10
lines changed

heatmap.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sensorsdata.amd.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sensorsdata.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/heatmap.js

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9177,13 +9177,33 @@ var heatmap_render = {
91779177

91789178
var dataPageTotal = 0;
91799179
var usableData = [];
9180-
9180+
var usableElem = [];
9181+
// 去除找不到对应元素的已经无效的选择器
91819182
_.each(data,function(obj){
9182-
if( obj.by_values[0] && _.querySelectorAll(obj.by_values[0])[0] ){
9183+
var elem = null;
9184+
if( obj.by_values[0] && (elem = _.querySelectorAll(obj.by_values[0])[0]) ){
91839185
usableData.push(obj);
9186+
usableElem.push(elem);
91849187
}
91859188
});
91869189

9190+
// 多个选择器对应一个元素,使用最后的元素
9191+
if(usableData.length > 1){
9192+
for(var i =0; i < usableElem.length; i++){
9193+
for(var j = (i+1); j < usableElem.length; j++){
9194+
if(usableElem[i] === usableElem[j]){
9195+
usableData[j].values[0][0] += usableData[i].values[0][0];
9196+
delete usableData[i];
9197+
break;
9198+
}
9199+
}
9200+
}
9201+
}
9202+
9203+
usableData = _.filter(usableData,function(a){
9204+
return a;
9205+
});
9206+
91879207
if(usableData.length === 0){
91889208
me.showErrorInfo(me.requestType);
91899209
}

src/sdk.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,24 @@ logger.info = function() {
174174

175175
})();
176176

177+
_.filter = function (arr, fn, self) {
178+
var hasOwn = Object.prototype.hasOwnProperty;
179+
if (arr.filter) {
180+
return arr.filter(fn);
181+
}
182+
var ret = [];
183+
for (var i = 0; i < arr.length; i++) {
184+
if (!hasOwn.call(arr, i)) {
185+
continue;
186+
}
187+
var val = arr[i];
188+
if (fn.call(self, val, i, arr)) {
189+
ret.push(val);
190+
}
191+
}
192+
return ret;
193+
};
194+
177195
_.inherit = function(subclass, superclass) {
178196
subclass.prototype = new superclass();
179197
subclass.prototype.constructor = subclass;

src/sensorsdata.full.amd.js

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ var ObjProto = Object.prototype;
153153
var slice = ArrayProto.slice;
154154
var toString = ObjProto.toString;
155155
var hasOwnProperty = ObjProto.hasOwnProperty;
156-
var LIB_VERSION = '1.10.9';
156+
var LIB_VERSION = '1.11.2';
157157

158158
sd.lib_version = LIB_VERSION;
159159

@@ -323,6 +323,24 @@ logger.info = function() {
323323

324324
})();
325325

326+
_.filter = function (arr, fn, self) {
327+
var hasOwn = Object.prototype.hasOwnProperty;
328+
if (arr.filter) {
329+
return arr.filter(fn);
330+
}
331+
var ret = [];
332+
for (var i = 0; i < arr.length; i++) {
333+
if (!hasOwn.call(arr, i)) {
334+
continue;
335+
}
336+
var val = arr[i];
337+
if (fn.call(self, val, i, arr)) {
338+
ret.push(val);
339+
}
340+
}
341+
return ret;
342+
};
343+
326344
_.inherit = function(subclass, superclass) {
327345
subclass.prototype = new superclass();
328346
subclass.prototype.constructor = subclass;

src/sensorsdata.full.js

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ var ObjProto = Object.prototype;
150150
var slice = ArrayProto.slice;
151151
var toString = ObjProto.toString;
152152
var hasOwnProperty = ObjProto.hasOwnProperty;
153-
var LIB_VERSION = '1.10.9';
153+
var LIB_VERSION = '1.11.2';
154154

155155
sd.lib_version = LIB_VERSION;
156156

@@ -320,6 +320,24 @@ logger.info = function() {
320320

321321
})();
322322

323+
_.filter = function (arr, fn, self) {
324+
var hasOwn = Object.prototype.hasOwnProperty;
325+
if (arr.filter) {
326+
return arr.filter(fn);
327+
}
328+
var ret = [];
329+
for (var i = 0; i < arr.length; i++) {
330+
if (!hasOwn.call(arr, i)) {
331+
continue;
332+
}
333+
var val = arr[i];
334+
if (fn.call(self, val, i, arr)) {
335+
ret.push(val);
336+
}
337+
}
338+
return ret;
339+
};
340+
323341
_.inherit = function(subclass, superclass) {
324342
subclass.prototype = new superclass();
325343
subclass.prototype.constructor = subclass;

version.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
var sensorsdata_js_sdk_latest_version = '1.10.9';
1+
var sensorsdata_js_sdk_latest_version = '1.11.2';

0 commit comments

Comments
 (0)