初心者プログラマーです。最近webサービスのAPI化に挑戦しているのですが、Ajaxの考え方がよくわかっていません。わかるかがいれば、教えていただきたいです。
例えば、以下の例です
⓪{A:1, B:2, C:3, D:4, E:5}データがあり、Aが+1されると、BとCは+1される。D,Eは関係なし
①クライアント側からURLが叩かれる
②サーバー側から{A:1, B:2, C:3}データがクライアント側に受け渡され、ABCDEが表示される
③クライアント側でAに対して+1の入力がされる
この時ふた通りのやり方があると思います。
プランA:サーバー側で計算を全てさせる。
A-1:クライアント側でデータの変更を行わずに、サーバー側に変更伝える信号を送る
A-2:サーバー側で、A,B,Cのデータを変更し、クライアント側へ変更後のA,B,Cのデータのみを送る
A-3:クライアント側はデータを受け取り、A,B,Cのみデータを変更する
A-4:もしエラーが発生した場合は、A,B,Cを変更しない
この方法のメリットは、ロジックをサーバー側でのみ書けば良いということです。デメリットは、A-2でデータの送信をしないといけないところです。
プランB:クライアント側、サーバー側両方で計算させる。
B-1:クライアント側が保持するデータA,B,Cの変更を行う。
B-2:サーバー側に変更伝える信号を送る。
B-3:サーバー側で、A,B,Cのデータを変更し、クライアント側へsuccessメッセージのみを送信する
B-4:もしエラーが発生した場合は、A,B,Cのデータを変更前に戻す
この方法のメリットは、送信するデータを作成しなくて良いところです。デメリットは計算ロジックをクライアント側、サーバー側両方で書かなければいけないところです。
ここでは+1するといった簡単な処理の例を書きましたが、自分で実装しようとしているのはもっと複雑な処理です。データ数もABCD4つだけではなく、30近くあります。
一般的にはどちらが普通なのでしょうか?
回答1件
あなたの回答
tips
プレビュー