7

trueユーザーが小さなトグルスイッチ/ボタンを使用してトグル値を変更できるアプリがあり、ユーザーがfalse「保存」などを明示的に押す必要なしに、変更がサーバーに自動的に送信されます。

これで、ユーザーがトグルスイッチを2回続けてすばやく押すと、サーバーがパケットを順不同で受信し、それによって間違った値を保存してしまう可能性がありますか?サーバーとは、OSネットワークスタックではなく、サーバー上で実行されているアプリロジックを意味します。

TCPパケットには番号が付けられているので、受信側のOSはパケットをアプリケーションに渡す前に並べ替え、HTTPはTCP上で実行されます。ただし、私が興味を持っているのは、HTTPが新しいTCP接続を作成する/作成しない状況です。

注意:私はjQueryを使用してAJAXリクエストを送信しており、jQueryライブラリへの呼び出しと同じ順序で送信されることが保証されていると想定しています。この仮定は有効ですか?

4

1 に答える 1

5

http プロトコルにはそのような保証はありません。一部の実装が実際にそれを保証している場合でも、それに依存するべきではありません。

これを行うことができます:クリック数を維持し(または、必要に応じてバージョン番号と呼びます)、サーバーに送信します。サーバーでは、状態を変更したときに最後のバージョン番号を保存し、この番号を使用して、より新しい値を上書きしないことを確認します。

于 2012-07-03T10:45:29.797 に答える