需求:当用户点击某篇文章时,将相关点击信息字段上报相关接口(字段由服务端提供)。
服务端提供的相关字段信息:
上报字段到接口A:‘xxx’
上报的字段:
- appId: "111",//固定值
- eventId: "222"//固定值
- messageId //另一个接口B获取
- messageType//另一个接口B获取
- userId//另一个接口B获取
注意:上报接口A和接口B不是同一个接口
思路:
1.相当于点击的时候通过ajax()请求一次接口,然后把字段作为参数传给接口;
(ajax参数传递写在data{}里面)
2.因为有些字段是从另一个接口B获取的,我们需要将这几个字段作为一个参数传递进来;
3.最后在network里面可以看到相关字段。
代码参考:
var requestUrl='xxx' //请求接口地址即上报字段的地址
function static_info(messageId,messageType, userId){
$.ajax({
type:"get",
url: requestUrl,
dataType: "json",
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
data:{
appId: "111",//固定值
messageId: messageId,//接口里的值
messageType: messageType,
userId: userId,
eventId: "222"//固定值
},
success:function(data){}
})
}
最后给相关的点击绑定static_info事件并传递相关参数:
<li onclick="static_info(1,news,leaf)">click</li>
但是以上static_info()的方法是不严谨的,我们需要考虑用户传递参数的各种情况:如空、undefinded等,在函数进行传参时,我们都需要参数检查
,以防万一,一般像这种编程方式都称为防御式编程
。
优化版参考代码:
function static_info(messageId, messageType, userId){
//1、参数检查
if (messageId == undefined ||
messageId == '' ||
messageType == undefined ||
messageType == '' ||
userId == undefined ||
messageType == '') {
return;
}
//2、执行程序
$.ajax({
type: "get",
url: xxx,
dataType: "json",
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
data: {
appId: "111",
messageId: messageId,
messageType: messageType,
userId: userId,
time: time,
eventId: "222"
},
success:function(data){}
})
}
不定期笔记整理的日常~,对你有用就点个
❤
吧
网友评论