在网站A,点一个按钮,调用网站B的接口,发送数据给网站B,要等网站B处理完后,网站A也是通过另外一个接口取得网站B的返回的数据。现在改成,网站A通过接口发送数据给网站B,由于网站B处理的数据需要时间很长,一般用户会把网页关掉,网站A就得不到网站B返回来的数据,能不能在网站A建立一个接口或页面什么的,在用户关掉网页后,也会自动接收网站B返回来的数据。注意,网站A取得网站B的数据,只能通过网站B提供的接口来获取,网站B不支持异步传输数据方式给网站A。

解决方案 »

  1.   

    网站A,是我们自己可控制的网站,
    网站B,是别人的网站,我们两个网站有数据来往,就得相互处理数据,他们只提供接口调用方式。
    用户登录我们的网站A,点击提交按钮后,就往网站B(通过网站B提供的接口)发送请求,网站B收到请求后,要花时间处理,有时候处理时间比较长,用户等得不耐烦,就把网页关掉了,那就取不到网站B返回的数据是什么了。
    现在怎么在用户关掉页面后,网站B处理好后把处理结果通知网站给网站A的这个用户(已关掉网页了)。
      

  2.   

    用户提交数据给A,A再提交给银行,银行也是返给A,A再把结果呈现给用户
    难道你是用户直接和银行交互?
    就要像用户直接和供货商交易,还要你这个中间商有什么用?
      

  3.   

    网站是B/S架构,
    用户提交数据给A,到这一步,用户就把网页关了,
    A还会继续处理?
    我的所有处理程序逻辑都在这个页面上,如果把这个页面关掉了,网站A就不会往下处理了的。
    不知有什么办法,用户提交数据到A的什么页面或服务,即使把这个页面关闭了,也继续处理下去。
    如果A再把结果呈现给用户,最后一步,那也只能等用户再次打开网页比如订单列表查看是否缴费成功了。
      

  4.   

    就是支付成功回调POST你的网页 你来更改你的"订单状态"而已..这不就是正常流程吗?  你新建一个"回调页面" 人家自动就请求你这个页面了.记住 跟"客户是否关闭页面" 没一毛钱关系....是你自己想太多了...
      

  5.   

    消息队列,订阅消息。只要B成功插入消息队列  A订阅B站消息  就算A隔天登录 都能收到B站的消息
      

  6.   

    你有网站后台,a页面的数据传给a的后台,a后台去和b交互啊,a后台接收b的回复之后记录到用户头上就行了,记作未读消息
    就算我开csdn发个帖然后关闭页面,有人回复我,我以后随时再来csdn的时候也一样能看到提示的
      

  7.   

    你說的有點模糊,有三種情況:
    1. B網站 保存請求結果,並提供查詢歷史記錄的接口
    2. A網站 保存請求結果
    3. 雙方都不保存結果先說第三種,由於雙方都不保存結果,中途關閉之後這個結果就丟失了。其他兩種(1,2說起來就是一種,也就是可以查詢到請求結果的歷史記錄 ):
    你可以在用戶發起請求的時候記錄一個請求編號,是否已經查看結果。比如用Cookie,數據庫等。
    用戶在綫接收完結果才關閉:當接收到結果的時候,就把上面說的請求編號的記錄丟掉,或者把已經查看結果改成是,Cookie建議丟掉,完成。
    用戶沒接收完就關閉: 由於請求的結果已經被保存了,當用戶重新打開的時候,就檢查一下是否有未查看結果的請求記錄,如果是的話根據請求編號,發個請求到A 或者 B 查詢歷史記錄,把結果顯示給用戶,丟掉請求記錄,完成。
      

  8.   


    補充一下:
    如果是直接在用戶瀏覽器Ajax提交數據的,並中途關閉的,那麼只有在  B網站 保存請求結果,並提供查詢歷史記錄的接口,情況下,才有可能獲取到最後的結果。
    如果是先提交到A後臺,A再提交到B,B返回的結果先發到A的後臺,那麼A就可以保存這個結果。如果用戶在綫就直接返回給用戶,如果已經關閉了。就等待用戶重新上線查詢的時候再取出返回。所以,如果要能在關閉之後,重新上線還能獲取結果,那一定要保存請求的記錄。