前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Button重复点击,你限制了吗?

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

作者头像
Dwyane
发布2018-05-22 17:36:59
1.5K0
发布2018-05-22 17:36:59
举报
文章被收录于专栏:技术总结
前言:

此文讲的主要是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>

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.03.08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 思路:
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档