Ajax通信(非同期通信)とAction Cableの違いがわからなかったので確認しました。初心者の自分がわかり易いように記載させていただきますのでご了承くださいませ。
そもそも**(同期)通信**とは
リクエスト毎にブラウザが読み込みされる通信方法なので、環境次第でなかなかページが表示されないことがあったりもします。
一方、非同期通信は、
リクエストのたびにブラウザを読み込むのではなく、一部のみ更新される通信方法です。
私が利用しているものではGoogle mapやLINEなども非同期通信とのこと。
細かい仕組みは置いといて、webページをスムーズに利用ができるシステムってことですね。
本題です、
私が学習の中で先に習ったのは、JavaScriptを使った非同期通信のAjax。
リクエストがルーティングによりコントローラーへ送られてレスポンスを返す流れの前にJavaScriptが間に入ることで、データの一部のみをスムーズにやりとり(かつ、HTMLを変更したり)してくれるものでした。
その後の学習で出てきたのが、通常のRails同様の記述とJavaScriptでスムーズな更新ができるAction Cable。
チャネルというサーバー側の仕組みを使うのですが、こちらもサーバーとクライアントの間にJavaScriptを含むチャネルのファイルを用意することで、処理を実行してくれます。
両者に違いはあるのか?
結論どちらでも同じ処理は可能だそうです!
主観ではありますが、Ajaxは処理の中で一部データのやりとりが必要な際の通信手段としてのイメージで、Action Cable(Websocket通信)はチャットなどリアルタイムでのやりとりを前提としたシステムを作る際に使うと良いのかなと感じました。
参考リンク
【Rails6.0】ActionCableを使用したライブチャットアプリを実装する手順を解説
非同期通信の仕組みについて