Skip to content

Commit ea13714

Browse files
author
shengyonggen
committed
更新字符串过长
1 parent 28c4bcb commit ea13714

File tree

6 files changed

+52
-6
lines changed

6 files changed

+52
-6
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ Sensors Analytics JavaScript SDK
2424
2. /dist下的是 可视化埋点和代码埋点的可用发行版文件。请将 /dist/版本号 下的文件都下载到你们自己网站目录下面!!!
2525
4. ***升级使用新版 SDK 前,请在微信群里先问下你们的神策分析系统版本是否支持!!!***
2626

27+
####1.5.7(注意1.5.4的要求要更新到1.5最新系统)
28+
因为某些server配置只能接收7K内的url。所以给字符串类型加上长度限制,默认最长1k。$pageview中默认取的referrer最大默认取800。可以在配置中设置 max_string_length: 1000 来修改最大限制长度。
2729
####1.5.6(注意1.5.4的要求要更新到1.5最新系统)
2830
给每个请求加上nocache的参数,防止ie11等浏览器缓存
2931
####1.5.5(注意1.5.4的要求要更新到1.5最新系统)

dist/1.5.7/sensorsdata.min.js

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

dist/1.5.7/vendor.min.css

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

dist/1.5.7/vendor.min.js

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

dist/1.5.7/vtrack.min.js

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

product/sensorsdata.js

Lines changed: 41 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ var _ = sd._ = {};
2525
// 默认配置
2626
sd.para = sd.para || {};
2727
sd.para_default = {
28+
// referrer字符串截取
29+
max_referrer_string_length:800,
30+
//通用字符串截取,超过7000的字符串会导致url超长发不出去,所以限制长度
31+
max_string_length: 1000,
2832
// send_error_event: true,
2933
cross_subdomain: true,
3034
show_log: true,
@@ -610,7 +614,9 @@ var _ = sd._ = {};
610614
, slice = ArrayProto.slice
611615
, toString = ObjProto.toString
612616
, hasOwnProperty = ObjProto.hasOwnProperty
613-
, LIB_VERSION = '1.5.6';
617+
, LIB_VERSION = '1.5.7';
618+
619+
sd.lib_version = LIB_VERSION;
614620

615621
// 提供错误日志
616622
var error_msg = [];
@@ -847,6 +853,7 @@ var _ = sd._ = {};
847853
+ pad(d.getMilliseconds());
848854
};
849855

856+
// 把日期格式全部转化成日期字符串
850857
_.searchObjDate = function(o) {
851858
if (_.isObject(o)) {
852859
_.each(o, function(a, b) {
@@ -860,6 +867,33 @@ var _ = sd._ = {};
860867
});
861868
}
862869
};
870+
// 把字符串格式数据限制字符串长度
871+
_.formatString = function(str){
872+
if(str.length > sd.para.max_string_length){
873+
logger.info('字符串长度超过限制,已经做截取--' + str);
874+
return str.slice(0,sd.para.max_string_length);
875+
}else{
876+
return str;
877+
}
878+
};
879+
880+
// 把字符串格式数据限制字符串长度
881+
_.searchObjString = function(o) {
882+
if (_.isObject(o)) {
883+
_.each(o, function(a, b) {
884+
if (_.isObject(a)) {
885+
_.searchObjString(o[b]);
886+
} else {
887+
if (_.isString(a)) {
888+
o[b] = _.formatString(a);
889+
}
890+
}
891+
});
892+
}
893+
};
894+
895+
896+
863897
// 数组去重复
864898
_.unique = function (ar){
865899
var temp,n=[],o= {};
@@ -1634,6 +1668,7 @@ var _ = sd._ = {};
16341668
}
16351669
}
16361670
_.searchObjDate(data);
1671+
_.searchObjString(data);
16371672
//判断是否要给数据增加新用户属性
16381673
saNewUser.checkIsAddSign(data);
16391674
saNewUser.checkIsFirstTime(data);
@@ -1778,15 +1813,15 @@ var _ = sd._ = {};
17781813
},
17791814
//set init referrer
17801815
setInitReferrer: function() {
1781-
var _referrer = document.referrer;
1816+
var _referrer = (document.referrer).slice(0,sd.para.max_referrer_string_length);
17821817
sd.setOnceProfile({
17831818
_init_referrer: _referrer,
17841819
_init_referrer_domain: _.info.referringDomain(_referrer)
17851820
});
17861821
},
17871822
// set init sessionRegister cookie
17881823
setSessionReferrer: function() {
1789-
var _referrer = document.referrer;
1824+
var _referrer = (document.referrer).slice(0,sd.para.max_referrer_string_length);
17901825
store.setSessionPropsOnce({
17911826
_session_referrer: _referrer,
17921827
_session_referrer_domain: _.info.referringDomain(_referrer)
@@ -1796,7 +1831,7 @@ var _ = sd._ = {};
17961831
setDefaultAttr: function() {
17971832
_.info.register({
17981833
_current_url: location.href,
1799-
_referrer: document.referrer,
1834+
_referrer: (document.referrer).slice(0,sd.para.max_referrer_string_length),
18001835
_referring_domain: _.info.referringDomain(document.referrer)
18011836
});
18021837
},
@@ -1815,15 +1850,15 @@ var _ = sd._ = {};
18151850
if(is_first_visitor){
18161851
sd.setOnceProfile(_.extend({
18171852
$first_visit_time: new Date(),
1818-
$first_referrer: document.referrer,
1853+
$first_referrer: (document.referrer).slice(0,sd.para.max_referrer_string_length),
18191854
$first_browser_language: navigator.language,
18201855
$first_referrer_host: _.info.referringDomain(document.referrer)
18211856
},$utms)
18221857
);
18231858
}
18241859
// trackpageview
18251860
sd.track('$pageview',_.extend({
1826-
$referrer: document.referrer,
1861+
$referrer: (document.referrer).slice(0,sd.para.max_referrer_string_length),
18271862
$referrer_host: _.info.referringDomain(document.referrer),
18281863
$url: location.href,
18291864
$url_path: location.pathname,

0 commit comments

Comments
 (0)