2017-11-18 3 views
-1

にセッションのロックを解除します。 フローは次のようになります。MVCロックとは、私はMVC 5.</p> <p>私は遅いサードパーティのAPIを呼び出して、ページの読み込み後に開始AJAX呼び出しを持っている中で達成したい特別な動作があります1つのコール

  1. コントローラはコールを受信します。
  2. コントローラは一部のセッションリソースにアクセスします。
  3. コントローラコールサードパーティAPI。
  4. コントローラの更新セッション変数。
  5. コントローラの応答要求。

重要なデータが含まれているため、クライアントに情報を返すことができないため、クライアント側でデータを保持するための呼び出しと、ステートレスアクションでサードパーティのAPIを呼び出すことはできません。後でセッション更新を行うために、呼び出しの結果をクライアントに返す必要があります。

  1. コントローラが電話を受ける:

    これは私がacheiveしたいものです。

  2. コントローラは一部のセッションリソースにアクセスします。
  3. セッションをロック解除して、コミュレットコールがアクセスできるようにします。
  4. コントローラコールサードパーティAPI。
  5. セッションをロックし、セッション変数を更新します。
  6. コントローラの応答要求。

痛みはありませんか?

ありがとうございました。

答えて

0

私は解決策を見つけましたが、それは醜いです。

私がしたのは、要求のGUIDを持つアプリケーションキャッシュに要求パラメータをキャッシュすることでした。 guidをクライアントに渡すと、遅いサードパーティAPIを呼び出すステートレスコントローラが呼び出され、他のajaxコールは保持されません。終了したら、セッション変数にapi結果を適用してhtmlをリフレッシュするために3番目のajax呼び出しを行うクライアントにguidを返します。

これまで最高の機能はありませんでしたが、これまで完全に動作していたのは、キャッシュされたリクエストを再利用するための変更です。

関連する問題