JavaScript利用定时器实现60秒内只能发送一次短信?

JavaScript08

JavaScript利用定时器实现60秒内只能发送一次短信?,第1张

<body>

手机号码: <input type="number"><button>发送</button>

<script>

var btn = document.querySelector('button')

var time = 60// 定义剩下的秒数

btn.addEventListener('click', function() {

btn.disabled = true

var timer = setInterval(function() {

if (time == 0) {

// 清除定时器和复原按钮

clearInterval(timer)

btn.disabled = false

btn.innerHTML = '发送'

time = 60//这个需要重新开始

} else {

btn.innerHTML = '还剩下' + time + '秒'

time--

}

}, 1000)

})

</script>

</body>

js只能当作用户前端,除非你弄node.js ,在这里不考虑

具体就是js获取输入的手机号和内容,然后判断输入是否准确,比如手机号位数和短信字数

用js给提交按钮绑定事件进行ajax post数据传输给后台,或者直接用submit按钮进行表单提交。

后台获取数据后,通过某些端口与运营商通讯,然后发送短信。

你单纯一个服务器肯定没法发短信啊,还要有硬件,就要去移动啦电信啦联通啦买一些服务,调用他们的服务发送。

当然你买个发送短信的硬件插服务器上也行,不一定稳定,也不一定合法。。。

Java实现短信自动发送功能主要是用httpclient实现的,要有发短信的端口。

1、硬件设备是一个3G网卡;

2、软件方面需要sun提过的java底层通信common包;

3、此外还需要第三方库SMSLib,这个是开源项目,主要用于实现java发短信的功能;

主要代码如下:

要导入三个包commons_codec,httpclient,logging

HttpClient client = new HttpClient()

PostMethod post = new PostMethod(

post.addRequestHeader("Content-Type",

"application/x-www-form-urlencodedcharset=utf-8")// 在头文件中设置转码

NameValuePair[] data = { new NameValuePair("sname", "*****"),

new NameValuePair("spwd", "*****"),

new NameValuePair("scorpid", "*****"),

new NameValuePair("sprdid", "*****"),

new NameValuePair("sdst", "*****"),

new NameValuePair("smsg", "*****") }

post.setRequestBody(data)

client.executeMethod(post)

Header[] headers = post.getResponseHeaders()

int statusCode = post.getStatusCode()

System.out.println("statusCode:" + statusCode)

for (Header h : headers) {

System.out.println(h.toString())

}

String result = new String(post.getResponseBodyAsString().getBytes(

"utf-8"))

System.out.println(result)

post.releaseConnection()