怎么用脚本抢酒店关键词

JavaScript016

怎么用脚本抢酒店关键词,第1张

作为一名程序员,我们会遇到和很多的开发问题,本章内容小编就为大家分享一篇如何用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=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克拉钻石多少钱

精选推荐

广告

我们先来看下秒杀活动页面代码

<!DOCTYPE

HTML>

<html>

<head>

<meta

http-equiv="Content-Type"

content="text/html

charset=gb2312">

<title>

Micomo

</title>

</head>

<body>

<div>

<p>

活动倒计时<strong

id="endtime"></strong>秒!

</p>

<input

type="button"

id="btn"

value="立即购买"

disabled="disabled"

onClick="func()"/>

</div>

<script

src="/js/jquery-2.1.1.min.js"></script>

<script

type="text/javascript">

//倒计时30秒

var

i

=

30

function

remainTime()

{

if

(i

>

0)

{

document.getElementById("endtime").innerHTML

=

i--

setTimeout("remainTime()",

1000)

}

if

(i

==

0)

{

$("p").text("活动开始")

$("p").css("background-color",

"yellow")

//倒计时结束,按钮状态改为可用

document.getElementById("btn").disabled

=

false

}

}

remainTime()

//点击按钮触发的方法

function

func()

{

alert("恭喜你抢到一个月饼")

}

</script>

</body>

</html>

页面预览

 

脚本

js

代码

<script

type="text/javascript">

var

button

=

document.getElementById("btn")

//每秒执行一次,若按钮状态为可用,进行点击

setInterval(function()

{

if

(button.disabled

==

false)

{

button.click()

}

},

1000)

</script>

setInterval()

方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

setInterval()

方法会不停地调用函数,直到

clearInterval()

被调用或窗口被关闭。

如何放到浏览器

浏览器打开活动页面,按F12进入调试模式,找到Console控制台,将上面js脚本标签内的代码粘贴进去(不要首尾标签),点击回车即可,一定要在活动结束前放进去。

结果预览

修改setInterval(function(){},millisec)中的millisec(毫秒为单位),可以控制点击频率。

这只是个简单的js代码,没有实现验证码自动验证。

可以参考学习,切勿拿来做有违道德,谋取利益的事。

个人博客,仅用来做些笔记,不保证内容正确性,若发现错误,恳请纠正。

百度浏览器积分兑换

打开如下页面,按F12,将代码放到console下,回车。

 

 

代码

//选取data-id为6的<a>标签

var

button

=

$("a[data-id='6']")

//每秒执行一次,若按钮状态为可用,进行点击

var

fuc

=

setInterval(function()

{

//如果出现刷新验证码的按钮,则表明已抢到

if($(".refresh-btn").length

>

0){

window.clearInterval(fuc)

//桌面通知,只有chrome,firefox浏览器支持桌面API

Notification.requestPermission(function(status)

{

var

n

=

new

Notification('通知消息',

{

body:

'爱奇艺会员兑换码!'

})

})

}

else

{

button.click()

}

},1000)//一秒一次点击