有这样一个功能,在页面中有一个按钮,点击之后会改变页面中的某个值状态,但是点击按钮并不是马上修改某个值状态,而是发一条连接到第三方系统,但是第三方系统并不会马上返回状态(这里不确定成功与否,何时成功),对于这种情况何时去取数据来改变页面中的某值状态是最好的。
界面加个按钮,用户主动刷新再去判断状态
这个方法被排除,用户不想这样
@李子深: 那别用异步了,直接用同步吧,真正执行成功再返回结果吧
点击按钮,实时发送请求到第三方,第三方不知道什么时候返回状态,这个怎么理解?
如果对方不马上返回,会发生请求超时,那么还能愉快的玩耍么;
你可以弄个定时器,每隔10s去请求一次,直到得到结果为止
请求不会超时,反正你发过来就行,它只会告诉你success,但到底成不成功还要它第三方内部去执行完之后才知道,但是第三方这个执行到底多久不知道,所以程序不能一直等。
用定时器也不行,用户会很频繁去点击这个按钮,我用服务的方法定时去取数据,最终还是没能很好解决。
会导致一种情况:服务取回的状态是1,但是第三方这时候又把状态改为0,但服务返回给页面的状态是1,实现我的状态应该为0才对。这就造成用户明明改变了值,但却一直没变化
@李子深: 不是很理解,它只会告诉你success,那么如何获取第三方内部执行后的结果呢;
如果需要频繁的请求,总有一次会得到想要的结果的话,那么处理方案如下;
用户点击后,生成一条流水,该流水的状态为 请求中;
用户打开该页面时,向后台查询是否有该用户申请流水的存在,如果不存在,则按钮可用;如果存在,则判断流水状态,若为申请中,则按钮不可用;若为已完成,则将按钮变更为下一状态;(按钮在可用变为不可用或者直接在不可用的状态下,触发定时器)
把前端所有客户的请求压力放置在服务器端,这种方案是不可取的;