摘要:这篇JavaScript栏目下的“JS实现网页抢购功能(触发,终止脚本)”,介绍的技术点是“终止脚本、网页抢购、功能、网页、js、实现”,希望对大家开发技术学习和问题解决有帮助。

以下我们是通过chrome浏览器的开发者功能,实现如何用JS代码完成抢购功能以及如何通过chrome浏览器调试并加载自己写的JS。

身为一名前端开发工程师,有时候业务场景是无法用手速模拟的,老司机也有翻车的时候【你懂得】。因此我特意写这一篇文章,希望能够对大家有所帮助。

涉及到的内容:

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=0;i<100;i++){

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='提交';

}

});

}

作者:java-script

链接:https://juejin.im/post/59bf6b6ff265da064261ba47

来源:掘金

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

也可以使用函数节流方式处理。如下代码:

//网站上写的代码

/**

* 抢购按钮

*

* */

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);

}

通过以上方式我们可以过滤掉恶意循环触发事件。这种函数节流方式也得到大家的一致认可与推广。

总结

通过上述方式,我们不仅学会了制做简单的js脚本,也学到一种简单的阻止js脚本的方法。想要真正的写一些有用的js脚本还需要你们自己努力哦!想要正在屏蔽掉恶意的js脚本,单纯的使用前端技术其实是有很大的难度!特此献给那些正在努力学习前端并想在前端的道路上越走越远的童鞋们。祝福你们。

Java实现抢购请求_JS实现网页抢购功能(触发,终止脚本)相关推荐

  1. java实现倒计时闹钟_js带闹铃功能的倒计时代码

    Js倒计时代码,带闹铃功能,自定义闹钟倒计时功能,点击开始按钮,即可开始倒数,代码不是太复杂,新手应该能看懂,代码分享给大家. 效果图: 源码: Js倒计时,闹铃功能 function $(id){ ...

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

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

  3. java实现https请求

    参考: https://www.cnblogs.com/chinway/p/5802541.html java 实现https请求 JSSE是一个SSL和TLS的纯Java实现,通过JSSE可以很容易 ...

  4. 第三篇 :微信公众平台开发实战Java版之请求消息,响应消息以及事件消息类的封装...

    微信服务器和第三方服务器之间究竟是通过什么方式进行对话的? 下面,我们先看下图: 其实我们可以简单的理解: (1)首先,用户向微信服务器发送消息: (2)微信服务器接收到用户的消息处理之后,通过开发者 ...

  5. java模拟HTTP请求(集合了网上搜来的各种)

    Java发送http请求 (get 与 post方法请求) Java发送http请求 (get 与post方法请求),以下代码经本人亲自调试可用!可以直接使用之. 注意:通过BufferedReade ...

  6. Java Web学习(2):静态网页与动态网页

    一静态网页 (1)静态网页概述 在网站设计中,纯粹HTML(标准通用标记语言下的一个应用)格式的网页通常被称为"静态网页",静态网页是 标准的HTML文件,它的文件扩展名是.htm ...

  7. Java微信公众号开发微信网页授权之前端传递code方式获取用户信息

    本片博客讲解的网页授权分为两步,前端先传递backUrl(回调地址)到后台网页授权接口,该接口拿到回调地址后组装授权连接,重定向到前端页面,前端页面截取Code,传入后端获取用户信息方法,获取用户信息 ...

  8. java抽组件_GitHub - ysc/HtmlExtractor: HtmlExtractor是一个Java实现的基于模板的网页结构化信息精准抽取组件。...

    HtmlExtractor是一个Java实现的基于模板的网页结构化信息精准抽取组件,本身并不包含爬虫功能,但可被爬虫或其他程序调用以便更精准地对网页结构化信息进行抽取. HtmlExtractor是为 ...

  9. python 抢购还是js抢购好_记录一次坑爹的Python脚本抢购低价手机经历!

    无意间浏览到魅族官网,说魅族3限量100台.30号中午12点抢购.正好我爪机目前处于报废状态,就来一试手气了.11点多种,习惯性的看了下网页脚本,发现了检测是否到抢购时间,并返回抢购消息的ajax.于 ...

最新文章

  1. 【imx6】Unable to find the ncurses libraries的解决办法
  2. Module build failed: Error: Node Sass version 5.0.0 is incompatible with ^4.0.0.
  3. NOI数学之提高级:欧拉定理和欧拉函数
  4. powershell提取html字段,使用PowerShell或VBS从HTML文件中提取表
  5. 传统云纹祥云素材,稳妥传承中国味!
  6. 手机展示海报PSD模板、适用众多设计!
  7. Django3与Vue3前后端分离搭建
  8. 异常 Failed to instantiate [java.util.List]: Specified class is an interface
  9. n1盒子当无线打印服务器,n1下ubuntu安装cups配置airprint网络打印服务器
  10. 台式电脑windows10蓝屏代码 SYSTEN_THREAD_EXCEPTION_NOT_HANDLED 失败的操作rtl8188gu.sys
  11. 绝地反击:我的战胜贫困的经历01(转载、整理)
  12. 无法启动程序,.dll不是有效的Win32应用程序
  13. 秒杀笔记(乐观锁+令牌桶+Redis缓存)
  14. 中国名气黑客网站目录
  15. 计算机与经济学:天造地设的一对
  16. STM32F407ZGT6的OLEDIIC的实现(全代码)
  17. 简历模板,简历通用模板,程序员求职简历模板
  18. 【毕业设计】基于单片机的墨水屏阅读器(单词卡) - 物联网 嵌入式
  19. enable 华为交换机ntdp_华为交换机设置
  20. python对Excel文件的读写操作

热门文章

  1. 京东C++开发工程师 2020校招卷总结
  2. 新代系统cnc怎样连接电脑_数控人眼中:那些好用的数控操作系统
  3. 打工人福利:如何收取你的第一桶金
  4. 【22/03】ssh/SSH/ssh key/github/vscode/error:1058/深入浅出【一遍必懂】
  5. tripwire检查文件完整性
  6. hjr-四旋翼飞行器串级PID飞控算法
  7. 点云处理过程中.stl文件转为.ply文件
  8. 绿色有机 | 美格智能加持智慧农业,解锁除草“新姿势”
  9. python开发环境对比_【整理】各种Python的IDE(集成开发环境)的总结和对比 | 在路上...
  10. 18个搞死创业公司的致命伤