javascript - 如何防止tab选项卡被恶意重复点击造成多次数据请求
巴扎黑
巴扎黑 2017-04-10 16:15:13
[JavaScript讨论组]

假如现在有三个选项卡,点击某个选项卡就通过ajax的方式加载出其中的内容,
如果网速过慢导致内容没有加载出来,用户就点击其他的选项卡,如何保证加载出来的结果是正确的,和能否将请求延迟发送等?

巴扎黑
巴扎黑

全部回复(5)
怪我咯

两个方案:

  • ajax期间,其他tab全部disabled

  • 设个变量loading,记录是否在请求,只有当loading为false时才发请求

天蓬老师

1,首先需要确定的是用户需要连续发送两次请求 无论结果如何两次请求不干扰都需要有效,那我们是不应该阻止用户请求的。

2,如果第二次的请求需要第一次的请求结束后才能发起,那我们肯定是应该要阻止的。

3,至于楼主说的恶意点击,你是说不想服务器多次处理这样的请求么?那是服务器的事情了。

阿神

在进行与界面更新相关的AJAX操作时,应考虑在请求前对页面进行遮罩,请求完成后解除,以此来提升界面的响应性以及规避用户再次请求。

怪我咯

取消其他请求或者定时器控制请求都ok。
不过我觉得也可以不用考虑取消。
都加载回来然后缓存到本地,保证同一数据请求一次。
当然也可以结合考虑

伊谢尔伦

我只想说一点,ajax可以设置成同步请求,如果我做这个需求,我会在用户点击一个选项卡之后启动一个遮罩loading层,锁住UI,使用户无法点击其它的操作,然后超时、响应什么的你再具体处理

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号