前端多次点击button_前端防止button被多次点击

前端的部分逻辑有时候控制前端的显示。比方记录收藏数目等等。有时候多次反复点击会造成前端显示的bug。所以须要有部分逻辑推断去筛除掉反复多次的点击。

实现部分代码例如以下,主要是通过setTimeout去加以推断。即不管点击几次,间隔一定时间才会去触发一次事件。从而仅仅产生一次的记录:

var i=0; //推断点击次数寄存

var closetimer = null; //延时函数寄存

function Button1_Click() //botton点击事件

{

console.log('1');

i++; //记录点击次数

closetimer = window.setTimeout(setout,200);

}

function setout(){ //点击运行事件

if(i>1) //假设点击次数超过1

{

console.log('wrong');

window.clearTimeout(closetimer); //清除延时函数

closetimer = null; //设置延时寄存为null

//加入操作代码

i=0; //重置点击次数为0

}

else{ //假设点击次数为1

console.log('right');

i=0; //重置点击次数为0

//加入运行操作的代码

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
多文件上传指的是一次上传多个文件,而不是一次只上传一个文件。下面我会分别介绍前端和后端的实现方式。 前端实现: 前端通常使用HTML中的`<input type="file" multiple>`元素来实现多文件上传功能,其中`multiple`属性表示允许选择多个文件。用户选择文件后,前端会将文件信息存储在FormData对象中,然后通过ajax请求将FormData对象发送到后端。 示例代码: ```html <form id="file-form"> <input type="file" id="file-input" multiple> <button type="submit">上传文件</button> </form> <script> const form = document.getElementById('file-form'); const fileInput = document.getElementById('file-input'); form.addEventListener('submit', (e) => { e.preventDefault(); const formData = new FormData(); for (let i = 0; i < fileInput.files.length; i++) { formData.append('files', fileInput.files[i]); } fetch('/upload', { method: 'POST', body: formData }) .then(response => { console.log(response); }) .catch(error => { console.error(error); }); }); </script> ``` 后端实现: 后端通常使用框架提供的文件上传中间件来处理文件上传,例如Node.js中的`multer`中间件。后端接收到前端发送的FormData对象后,通过中间件解析出文件信息,然后将文件保存到指定目录。 示例代码(使用Express框架和multer中间件): ```javascript const express = require('express'); const multer = require('multer'); const app = express(); const upload = multer({ dest: 'uploads/' }); app.post('/upload', upload.array('files'), (req, res) => { console.log(req.files); res.send('上传成功'); }); app.listen(3000, () => { console.log('服务已启动'); }); ``` 在上面的示例中,`multer`中间件的`upload.array('files')`表示接收名为`files`的文件数组。在处理上传成功后,后端会返回一个响应,告诉前端上传成功。 需要注意的是,在上传大文件时,为了避免内存溢出,通常需要对文件进行分片上传和断点续传等优化处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值