Button重复点击,你限制了吗?

前言:

此文讲的主要是app的开发意识,每个app开发者都得当自己的产品经理,如何设计,让app更友好,执行效率更高。 点击按钮请求服务器数据时,如果是网络状态不好,用户可能会多次点击,如果客户端不做限制,那么可能会导致多次请求,造成数据的混乱,页面的多次跳转,信息的报错等情况,故此,请求时限制用户多次点击很有必要

当然,也有国内的大媒体没有限制,在下亲测,例如iphone手机qq,用手机注册,输入手机后,可以快速点几次,然后界面也进入重复的界面几次,不过他们后台只发送了一次短信验证码(证明腾讯后台做了限制)

思路:

一定要在用户发送请求前就限制<code>button</code>(其他可点击的控件同理),然后请求回来后就放开限制,请求回来指的是无论是失败还是成功,抑或是请求超时,都要放开限制。 在此以iOS代码为例 <pre> //请求参数 NSMutableDictionary *params = [NSMutableDictionary dictionary]; params[@"a"] = @"a"; //发请求给服务器 _manager = [AFHTTPSessionManager manager]; [self.manager GET:@"http://DwadeCoding.com/api_open.php" parameters:params progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { //请求成功,这时需要放开 //.....to do something } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { //网络超时等情况,这时需要放开 [MBProgressHUD showError:error.localizedDescription]; }]; </pre>

如果请求成功,我们一般会<code>push</code>或者<code>present</code>其他界面,但是最好要放开限制的原因是可能用户会按后退键回到上一个界面,不放开,用户就动不了那个<code>button</code>啦

我觉得限制分两点: 1、按钮color:颜色弄暗点、灰点(如果点击后不停留在本界面,可忽略) <pre> UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; [btn addTarget:self action:@selector(btnColorChange:) forControlEvents:UIControlEventTouchDown]; //touchDown方法改变其颜色 -(void)btnColorChange { _btn.backgroundColor = [UIColor blueColor]; } </pre> 2、按钮action:不给点击 <pre>btn.enabled = YES;//控制可以点击 btn.enabled = NO;//禁止点击</pre>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏進无尽的文章

基础篇-app上传小准备及上架后搜索不显示

        app上传中会需要准备一些文件,如 icon图标,launch Image ,itunes Contect 中还需要上传不同尺寸的屏幕截图等,下...

24620
来自专栏Youngxj

EMLOG评论获取QQ资料

20830
来自专栏GIS讲堂

eCharts添加自定义geojson数据实现地图展示

当初看到echarts的地图的时候感觉可以做点什么,但是一直米有实施,最近刚好用到了,就研究了研究,在echarts中添加了自定义的geojson数据,实现数据...

3.3K40
来自专栏有刻

Mac 小记 — 杂录

37460
来自专栏谦谦君子修罗刀

项目开发解决方案及参考文献

玩转 iOS 10 推送 —— UserNotifications Framework(上) iOS 接收推送消息后跳转到某个页面(适配iOS10)

20010
来自专栏python小白到大牛

动漫迷的福利!Python小白也可以学会的爬虫教程

有一段没用 python 了,我也不知道自己为什么对 python 越来越淡,可能自己还是比较喜欢 android ,毕竟自己第一次接触编程就是 android...

14420
来自专栏小特工作室

基于JQuery EasyUI的WebForm控件封装(含源码)

      做WebForm软件的朋友们,对于JQuery EasyUI类库肯定不会陌生,它是基于JQuery类库编写的,据说是国人开发的,真是神人啊.使用此控...

275100
来自专栏LanceToBigData

Eclipse快捷键

eclipse中的快捷键非常之多,其实你不要去刻意去记,用着用着就知道了。 一、常用快捷键 ? 二、编辑 ? 三、查看 ? 四、窗口 ? 五、导航 ? 六、搜索...

20670
来自专栏程序员的诗和远方

React Native 实现二维码扫描

最近刚好在学习 React Native 想搞个扫描条形码,二维码的小应用,因为涉及硬件接口,而且自己本身并没有原生开发背景,踩了几个坑,记录一下。 扫描...

67180
来自专栏phodal

我的第四款编辑器:微信公众号上使用 Markdown 来显示代码

这已经是我第四次写编辑器了~~~ 第一次是在三年前(2014年4月份),当时我听说有一个工具叫 Node-Webkit,于是我就结合CodeMirror撸了一个...

22680

扫码关注云+社区

领取腾讯云代金券