相干一段JS的若干疑问
有关一段JS的若干疑问
var Type = {"PVUV":"3"};
$(function () {
// 未获取到pid 则不做处理
var hidePid = $('#tapp_page_point').val();
if ($.trim(hidePid) == '') {
return;
}
var sid = hidePid.substring(0, 1);
var pid = hidePid;
var proid = $('#_projectId').val();
// pv请求
req(sid, Type.PVUV, pid, proid, '', '');
});
//问题一:返回图像应该是点击触发事件,这里为什么直接写在了“$(function () {})”里面???
//图像方法
function req(sid, tid, pid, proid, levelid, refer) {
var url = getReqUrl(sid, tid, pid, proid, levelid, refer);
reqImage(url);
}
//根据参数,拼接图像的路径
function getReqUrl(sid, tid, pid, proid, levelid, refer) {
sid = $.trim(sid);
tid = $.trim(tid);
pid = $.trim(pid);
proid = $.trim(proid);
levelid = $.trim(levelid);
refer = $.trim(refer);
var url = 'http://t.jr.jd.com/clickApp?sid=' + sid
+ '&tid=' + tid
+ '&pid=' + pid
+ '&proid=' + proid
+ '&level=' + levelid
+ '&refer=' + refer
+ '&t=' + new Date().getTime();
return url;
}
//根据url生成图片
function reqImage(url) {
//定义生成image图片的方法
var newImage = function(src, random, callback) {
//定义image对象,创建一个Image对象:var a=new Image(); 定义Image对象的src: a.src=”xxx.gif”; 这样做就相当于给浏览器缓存了一张图片。
var img = new Image();
//重新定义拼接路径
//问题二:random为什么传入了值“true”??? 这里做这个判断有什么作用???
src = random ? (src + '&random=' + Math.random()+''+(new Date)) : src;
//设置图片路径
img.setAttribute('src', src);
};
//问题三: “newImage”有三个参数,为什么这里只传入了两个???
newImage(url, true);
//问题四:这里为什么没有“return img”就可以返回图像???
//问题五:这段js叫做“clickapp”,注释写作“pv请求”。 请问这个“pv请求”指什么呢???
分析的网站地址:http://m.z.jd.com/?from=jrad_1173373&loc=2
}
------解决思路----------------------
1.就是页面加载时也加载图片,这个不一定要点击才加载,看用途吧
2.传入true,就是要在url上加上时间戳和Math随机数,也就是每次访问的url都不一样,其他人就算得到了这个url也不能加载,为了安全吧
3.function的传入参数数量可以不跟定义时的参数数量一样,常事
4.我也知道,因为没有返回,image参数就没有了,可能跟脚本的作用有关吧
5.百度pv吧,这个有点专业
------解决思路----------------------
1、img.setAttribute就是为图片设置路径,所以估计图片的相应属性在其他地方已经进行了定位控制。
2、src = random 不是进行相等判断,,,是进行赋值。。。这里意思是将新的随机数连接地址赋给src
4、用户访问量统计。。。
------解决思路----------------------
分析的很好。
1、img.setAttribute设置图片的路径,估计图片在其它地方做了定位。
2、哪个是赋值语句,不是判断语句。判断语句在后面。
3、估计在其它地方有引用。
4、用户访问统计。
var Type = {"PVUV":"3"};
$(function () {
// 未获取到pid 则不做处理
var hidePid = $('#tapp_page_point').val();
if ($.trim(hidePid) == '') {
return;
}
var sid = hidePid.substring(0, 1);
var pid = hidePid;
var proid = $('#_projectId').val();
// pv请求
req(sid, Type.PVUV, pid, proid, '', '');
});
//问题一:返回图像应该是点击触发事件,这里为什么直接写在了“$(function () {})”里面???
//图像方法
function req(sid, tid, pid, proid, levelid, refer) {
var url = getReqUrl(sid, tid, pid, proid, levelid, refer);
reqImage(url);
}
//根据参数,拼接图像的路径
function getReqUrl(sid, tid, pid, proid, levelid, refer) {
sid = $.trim(sid);
tid = $.trim(tid);
pid = $.trim(pid);
proid = $.trim(proid);
levelid = $.trim(levelid);
refer = $.trim(refer);
var url = 'http://t.jr.jd.com/clickApp?sid=' + sid
+ '&tid=' + tid
+ '&pid=' + pid
+ '&proid=' + proid
+ '&level=' + levelid
+ '&refer=' + refer
+ '&t=' + new Date().getTime();
return url;
}
//根据url生成图片
function reqImage(url) {
//定义生成image图片的方法
var newImage = function(src, random, callback) {
//定义image对象,创建一个Image对象:var a=new Image(); 定义Image对象的src: a.src=”xxx.gif”; 这样做就相当于给浏览器缓存了一张图片。
var img = new Image();
//重新定义拼接路径
//问题二:random为什么传入了值“true”??? 这里做这个判断有什么作用???
src = random ? (src + '&random=' + Math.random()+''+(new Date)) : src;
//设置图片路径
img.setAttribute('src', src);
};
//问题三: “newImage”有三个参数,为什么这里只传入了两个???
newImage(url, true);
//问题四:这里为什么没有“return img”就可以返回图像???
//问题五:这段js叫做“clickapp”,注释写作“pv请求”。 请问这个“pv请求”指什么呢???
分析的网站地址:http://m.z.jd.com/?from=jrad_1173373&loc=2
}
------解决思路----------------------
1.就是页面加载时也加载图片,这个不一定要点击才加载,看用途吧
2.传入true,就是要在url上加上时间戳和Math随机数,也就是每次访问的url都不一样,其他人就算得到了这个url也不能加载,为了安全吧
3.function的传入参数数量可以不跟定义时的参数数量一样,常事
4.我也知道,因为没有返回,image参数就没有了,可能跟脚本的作用有关吧
5.百度pv吧,这个有点专业
------解决思路----------------------
1、img.setAttribute就是为图片设置路径,所以估计图片的相应属性在其他地方已经进行了定位控制。
2、src = random 不是进行相等判断,,,是进行赋值。。。这里意思是将新的随机数连接地址赋给src
4、用户访问量统计。。。
------解决思路----------------------
分析的很好。
1、img.setAttribute设置图片的路径,估计图片在其它地方做了定位。
2、哪个是赋值语句,不是判断语句。判断语句在后面。
3、估计在其它地方有引用。
4、用户访问统计。