私は、レスポンスをフォーマットし、クライアントに応答し、クライアントがレスポンスを受け取った場合にのみデータベースに何かをコミットするアクションを望みます。私がafter_filtersについて理解していることから、クライアントに送信される前に応答を傍受するだけです。何か案は?クライアントへの応答が成功した場合にのみ、Railsで何かできますか?
0
A
答えて
0
私が知る限り、クライアントが追加の要求を送信するようにクライアントに指示する以外のアプリケーションレベルでメッセージを受信したことを確認する信頼できる方法はありません。 javascriptで。
クライアントに200のメッセージを受け取るのではなく、APIを使用して成功したトランザクションのリストをAPIの他の場所に置くことで、クライアントがそのリストを積極的に訪問してトランザクションが行われることを確認できます。
0
これは他の解説者にもかかわらず、これは妥当なことだと思います。私は承認を送るjavascriptを書く彼のアプローチに同意する。
私はトランザクションをその期間開いたままにしないので、暫定フラグを付けてデータを保存することをお勧めします。謝辞を受け取ったら、そのデータを確認済みとしてマークしてください。
関連する問題
- 1. 成功した応答は何ですか:ajaxの関数(応答)
- 2. ServerResourceからのクライアントへのストリーミング応答
- 3. SpringSecurityでAuthenticationProviderが成功した後に何かしますか
- 4. node.jsはmongoに挿入成功した後に応答しますか?
- 5. 成功? 'sent':成功しなかった場合は 'failed'がデフォルトで 'sent'になります。どうして?
- 6. JDBC: `con.rollback()`は`con.commit`が成功しなかった場合にのみ有効ですか?
- 7. MSG_PEEKの非ブロックrecvが成功した場合、MSG_PEEKのない次のrecvも成功しますか?
- 8. jqueryの$アヤックス成功応答の問題
- 9. "すべての電話がOK Google [...]"に応答した場合、
- 10. INDYコマンドハンドラ。パラメータの成功応答
- 11. child_process execがクライアントのブラウザに応答できません
- 12. カバレッジチェックが成功した場合にのみgrailsプロジェクトを構築する
- 13. Stackmobログインコールバックが成功しなかった場合
- 14. Google Analytics - 登録が成功した場合にのみ仮想ページビュー
- 15. ユーザーオブジェクトのChangePasswordが成功しなかった場合、アカウントをロックしません。
- 16. XMPPプレゼンスサブスクリプションへの応答を延期できますか?
- 17. MFCアプリケーションが応答していない場合、どのように検出できますか?
- 18. FB.uiなしでFacebook共有が成功した場合にアラートを生成
- 19. 成功したオープンソースプロジェクトの構成要素は何ですか?
- 20. jQueryの応答しないボタン。応答と再読み込みに時間がかかります
- 21. Rails 3 AJAX(JQuery)のポストが成功した保存に正しく応答するようにするにはどうすればよいですか?
- 22. ブラウザへのサーバーの応答を書き込みます。Java
- 23. 応答が遅い場合はASIHTTPRequestがクラッシュします
- 24. 紺碧のモバイルサービスでクライアントにどのように応答しますか?
- 25. UDPリスナーがクライアントに応答しました
- 26. apache httpクライアントorg.apache.http.NoHttpResponseException:ターゲットサーバが応答に失敗しました
- 27. リソースを読み込めませんでした - サーバーがRails 3プロジェクトで404ステータスエラーで応答しました
- 28. PHP SoapClientはファイルへの応答を書き込みます
- 29. Socket.ioクライアント:1つのハンドラですべてのイベントに応答しますか?
- 30. リバースプロキシモードApacheの代行受信またはトラップ302のバックエンドサーバーからの応答とクライアントへの302応答の送信なしで内部的にリダイレクト
これは非常に愚かです。なぜクライアントが何かを要求してからあなたの応答を無視すると思いますか?クライアントから何らかの確認を得ることはできませんし、クライアントを探す必要もありません。可能であれば、レスポンスにJavaScriptを組み込んで*秒のリクエストをトリガし、データベースへの書き込みをリクエストすることができます。あなたはこれを行うべきではありません。 – meagar
詳しくは、接続レベルの失敗を参照しています。 HTTP 200レスポンスが失敗した場合にのみ、取引をしたいと思います。私がAPIのエンドポイントを提供していて、私の呼び出し元が私が行ったことを確認できないことをしたくない理由はたくさんあります。 –
TCP/IPのままにしておきます。あなたがクライアントがあなたの応答を無視した場合、それはあなたの問題ではない層で動作しています。 – meagar