首页 新闻 搜索 专区 学院

如何取数据更合适

0
悬赏园豆:10 [已关闭问题] 关闭于 2017-05-27 09:35

有这样一个功能,在页面中有一个按钮,点击之后会改变页面中的某个值状态,但是点击按钮并不是马上修改某个值状态,而是发一条连接到第三方系统,但是第三方系统并不会马上返回状态(这里不确定成功与否,何时成功),对于这种情况何时去取数据来改变页面中的某值状态是最好的。

李子深的主页 李子深 | 初学一级 | 园豆:137
提问于:2017-04-26 09:02
< >
分享
所有回答(2)
0

界面加个按钮,用户主动刷新再去判断状态

狼爷 | 园豆:1202 (小虾三级) | 2017-04-26 09:45

这个方法被排除,用户不想这样

支持(0) 反对(0) 李子深 | 园豆:137 (初学一级) | 2017-04-26 11:35

@李子深: 那别用异步了,直接用同步吧,真正执行成功再返回结果吧

支持(0) 反对(0) 狼爷 | 园豆:1202 (小虾三级) | 2017-04-26 12:43
0

点击按钮,实时发送请求到第三方,第三方不知道什么时候返回状态,这个怎么理解?

如果对方不马上返回,会发生请求超时,那么还能愉快的玩耍么;

 

你可以弄个定时器,每隔10s去请求一次,直到得到结果为止

奈何一笑 | 园豆:439 (菜鸟二级) | 2017-04-26 11:31

请求不会超时,反正你发过来就行,它只会告诉你success,但到底成不成功还要它第三方内部去执行完之后才知道,但是第三方这个执行到底多久不知道,所以程序不能一直等。

用定时器也不行,用户会很频繁去点击这个按钮,我用服务的方法定时去取数据,最终还是没能很好解决。

会导致一种情况:服务取回的状态是1,但是第三方这时候又把状态改为0,但服务返回给页面的状态是1,实现我的状态应该为0才对。这就造成用户明明改变了值,但却一直没变化

支持(0) 反对(0) 李子深 | 园豆:137 (初学一级) | 2017-04-26 11:41

@李子深: 不是很理解,它只会告诉你success,那么如何获取第三方内部执行后的结果呢;

如果需要频繁的请求,总有一次会得到想要的结果的话,那么处理方案如下;

 

用户点击后,生成一条流水,该流水的状态为   请求中;

 

用户打开该页面时,向后台查询是否有该用户申请流水的存在,如果不存在,则按钮可用;如果存在,则判断流水状态,若为申请中,则按钮不可用;若为已完成,则将按钮变更为下一状态;(按钮在可用变为不可用或者直接在不可用的状态下,触发定时器)

 

把前端所有客户的请求压力放置在服务器端,这种方案是不可取的;

支持(0) 反对(0) 奈何一笑 | 园豆:439 (菜鸟二级) | 2017-04-26 16:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册