涉及到的内容:
1.chrome浏览器
2.js代码
3.函数节流
第一步
打开chrome浏览器,使用组合键Ctrl+shift+i打开开发者工具,接下来如图所示。
点击snippets
第二步
如图所示
点击new snippet -->输入脚本‘名称'-->Ctrl+s保存。
第三步
如图所示
选择新创建的脚本‘名称',在如图所示的第二步进行编辑js代码。最后如第三步所示:run 运行代码。
js脚本代码
1.以下是网站上的代码:
抢购
/**
* 抢购按钮
*
* */
btn.οnclick=function(){
console.log('抢购成功!')
}
每次点击抢购 控制台输出 抢购成功!
2.脚本代码/**
* 最简单的脚本代码
* 版本1.0.1
*/
btn.click()//触发按钮执行click事件
/**
* 使用for循环执行抢购的脚本代码
* 版本1.0.2
* */
for(var i=0i<100i++){
btn.click()
}
通过上边的脚本js代码可以知道,我们可以在chrome浏览器内置脚本,并控制执行。
当开发人员模拟真实环境的高并发情况,咱们就可以使用这种脚本的方式模拟测试。通过刚刚的脚本我们发现我们开发的页面中的js是有很多问题的。假设【抢购按钮】触发的是请求数据接口。则会出现在一个时间内发出n个请求。处理这个问题可以参考防止重复提交
防止ajax重复提交
提交
/**
* 模拟ajax提交
* @fn 回调函数
* */
function Ajax(fn){
setTimeout(function(){
var data= {result:true,msg:'提交成功!'}
fn(data)
},2000)
}
/**
* btn click 提交事件
*
* */
btn.οnclick=function(){
//检查 按钮是否被锁住,锁住直接rerun
if(btn.getAttribute('lock')){
return
}
//上锁
btn.setAttribute('lock',1)
//更改状态
btn.innerText='提交中...'
//模拟ajax提交
Ajax(function(data){
//请求成功
if(data.result){
console.log('请求成功')
//请求成功解锁
btn.setAttribute('lock',"")
//还原状态
btn.innerText='提交'
}else{
console.log('请求失败')
//请求失败解锁
btn.setAttribute('lock',"")
//还原状态
btn.innerText='提交'
}
})
}
也可以使用函数节流方式处理。如下代码://网站上写的代码
/**
* 抢购按钮
*
* */
btn.οnclick=function(){
throttle(function(){
console.log('抢购成功!')
},500)
}
/**
* 函数节流
* @fn {function} 回调函数
* @time {number} 时间,毫秒
*
* */
function throttle(fn,time){
if(throttle.id){
clearTimeout(throttle.id)
}
throttle.id=setTimeout(function(){
fn()
},time||200)
}
通过以上方式我们可以过滤掉恶意循环触发事件。这种函数节流方式也得到大家的一致认可与推广。
以上内容是JavaScript实现网页抢购功能的教程,不仅如此,我们还学会了制做简单的js脚本,也学到一种简单的阻止js脚本的方,大家赶紧动手操作一下吧。
相关推荐:
如何用php脚本抢东西
点赞文章给优秀博主打call~
1克拉钻石多少钱
精选推荐
广告
1:做好水电基础工程,从安全角度来讲,卫生间水管电线走上面比走下面好。但很多“游击队”贪图省力,水电走地上,甚至在卫生间开地槽,凿圆孔。2:清理基层和墙壁,房子装修防水,涉及阳台、厨房、卫生间,但重点是卫生间。首先,用小金属榔头敲墙面、地面,如果发现“噗噗”的空声,意味着里面有空鼓,必须把空鼓部分全部敲掉。然后仔细清理四个墙面基层和地面,拔掉铁钉,清理杂土垃圾,最好用清水冲洗一遍,然后待其干燥。
3:做好刚性防水第一关,卫生间各种下水管能不改动,尽量不要去改动万一要改动,千万不能用水泥沙浆去填孔隙,一定要堵漏王分三次去填。房间最容易漏水的是下水管四周和墙角四条边,因此这些重点部位应该予以格外重视。地面四周也要分成三次堵,要有间隔时间。这样,就给地面穿了一层刚性的防水盔甲。卫生间门槛内要做一个斜坡,涂得高,防止水倒流到外面房间去,并且门槛石一定要用精水泥沙浆稍微放点堵漏王湿贴。
4:弹性防水涂料做好第二关 新房子建成交付后多少会有沉降,时间一长,坚硬的堵漏王弹性涂料会因沉降而活生生地被拉裂,从而失去防水效果。因此有必要再加上第二次保险——弹性防水涂料。一般是先做墙面防潮,做到一米八以上。因为人洗澡会把水喷溅到墙面瓷砖上,瓷砖分子间隙大,水分子很轻松进入墙体,渗透到对面居室墙面,从而导致卫生间背面油漆脱落,墙纸发霉变色。墙面防潮做好再贴墙面砖,然后做地面装修防水。