下面我们利用chrome浏览器的开发者功能,实现如何用JS代码完成抓取功能,以及如何通过chrome浏览器调试加载自己编写的JS。
作为一个前端开发工程师,有时候业务场景无法用手速模拟,老司机有时候会翻车【你懂的】。所以我特意写这篇文章,希望对大家有所帮助。
涉及的内容:
1.chrome浏览器2.js代码3。功能节流
第一步
打开chrome浏览器,使用Ctrl shift i打开开发者工具,如下图所示。
单击片段
第二步
如图所示
单击新建片段-输入脚本“名称”-Ctrl+s保存。
第三步
如图所示
选择新创建的脚本“name ”,并在第二步中编辑js代码,如图所示。最后,如步骤3所示:运行运行代码。
Js脚本代码
1.以下是网站上的代码:
body div class=' box ' img class=' img ' src=' http : image/PICT . png '/button class=' BTN ' id=' BTN ' Snap up/button/div脚本类型=' text/JavaScript '/* * * Snap button * * */BTN . onclick=function(){ console . log(' Snap succeed!');};/script /body每次点击抢购控制台,输出抢购成功!
2.脚本代码
/* * *最简单的脚本代码* 1 . 0 . 1版*/BTN . click();//执行click事件的触发器按钮/* * *用于执行snap-up脚本代码的for循环*版本1 . 0 . 2 * */for(var I=0;i100I){ BTN . click();}从上面的脚本js代码可以知道,我们可以在chrome浏览器中构建一个脚本并控制其执行。
当开发人员在真实环境中模拟高并发时,我们可以使用这个脚本来模拟测试。通过刚才的脚本,我们发现我们开发的页面中的js有很多问题。假设[快速按钮]触发请求数据接口。一次发出n个请求。为了解决这个问题,我们可以参考防止重复提交
!doctype HTML HTML Head metachartset=' UTF-8 ' Title防止ajax重复提交/Title/Head body button id=' BTN ' Submit/button script/* * *模拟ajax提交* @fn回调函数* */Function Ajax(fn){ settimeout(Function(){ var data={ result : true,msg : '提交成功!'};fn(数据);},2000);}/* * * }//锁定btn.setAttribute('lock ',1);//更改状态btn.innerText='正在提交.';//模拟ajax并提交Ajax(函数(数据){ //请求成功if(data.result){ console.log('请求成功');//请求解锁btn.setAttribute('lock ','')成功;//还原状态btn.innerText=' submit}else{ console.log('请求失败');//请求未能解锁btn.setAttribute('lock ',' ');//还原状态btn.innerText=' submit} });}/脚本/正文/html作者:Java-脚本链接:https://juejin.im/post/59bf6b6ff265da064261ba47来源:掘金版权归作者所有。商业转载请联系作者授权,非商业转载请注明出处。
也可以通过函数节流来处理。以下代码:
//网站上写的代码/* * * snap button * * */BTN . onclick=function(){ throttle(function(){ console . log(' snap success!');},500);};/* * *函数throttle * @fn {function}回调函数* @time {number} time,毫秒* * */函数throttle (fn,time){ if(throttle . id){ clear time out(throttle . id);};throttle . id=setTimeout(function(){ fn();},时间| | 200);}通过以上方式,我们可以过滤掉恶意循环触发事件。这种功能节流的方法也得到了大家的一致认可和推广。
总结通过以上的方法,我们不仅学会了制作简单的js脚本,还学会了防止js脚本的简单方法。如果你真的想写一些有用的js脚本,还是需要自己努力的!要想屏蔽掉恶意的js脚本,单纯使用前端技术是非常困难的!这是献给那些在前端努力学习,想在前端的道路上越走越远的童鞋。祝福大家。