如何用php脚本抢东西,如何用JS代码实现网页抢购功能

作为一名程序员,我们会遇到和很多的开发问题,本章内容小编就为大家分享一篇如何用JS实现网页抢购功能,以下我们是通过chrome浏览器的开发者功能,实现如何用JS代码完成抢购功能以及如何通过chrome浏览器调试并加载自己写的JS。

涉及到的内容:

1.chrome浏览器

2.js代码

3.函数节流

第一步

打开chrome浏览器,使用组合键Ctrl+shift+i打开开发者工具,接下来如图所示。

ef1de5c4e6f90d4384123a2e14210527.png

点击snippets

第二步

如图所示

2c1839104c69ecae048edb4eb7532190.png

点击new snippet -->输入脚本‘名称'-->Ctrl+s保存。

第三步

如图所示

f66a700e36fb1aa18faafccd31d5e3c4.png

选择新创建的脚本‘名称',在如图所示的第二步进行编辑js代码。最后如第三步所示:run 运行代码。

js脚本代码

1.以下是网站上的代码:

pict.png

抢购

/**

* 抢购按钮

*

* */

btn.οnclick=function(){

console.log('抢购成功!');

};

每次点击抢购 控制台输出 抢购成功!

2.脚本代码/**

* 最简单的脚本代码

* 版本1.0.1

*/

btn.click();//触发按钮执行click事件

/**

* 使用for循环执行抢购的脚本代码

* 版本1.0.2

* */

for(var i=0;i<100;i++){

btn.click();

}

通过上边的脚本js代码可以知道,我们可以在chrome浏览器内置脚本,并控制执行。

657e565787c823eb55c5df3231d7861e.png

当开发人员模拟真实环境的高并发情况,咱们就可以使用这种脚本的方式模拟测试。通过刚刚的脚本我们发现我们开发的页面中的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脚本的方,大家赶紧动手操作一下吧。

相关推荐:

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值