サーバーサイドとフロントのデータのやり取り


サーバーサイドではPHPやRubyなどの言語を使いますが、  
ブラウザ側ではJavaScript一択ですよね。

そのJavaScriptとのデータのやり取りはどのようにしていけばよいのでしょうか。  
ページにJSONを埋め込んでパースしたり、ajaxでデータを取得するための通信を行ったりするくらいでしょうか。

未だ経験したことないので、様々なシチュエーションに基づいて、  
どのようなやり方、工夫がよいのかお聞かせください。




質問に挙がっているようなやり方以外にも

  * [Websocket](https://ja.wikipedia.org/wiki/WebSocket)
  * [WebRTC](https://ja.wikipedia.org/wiki/WebRTC)

を使った方法などもあります。

ざっくりと言うと  
WebSocketは双方向の通信を効率良くできる通信方法で、  
WebRTCはP2P(クライアント同士での直接通信)が売りで、対戦ゲームやビデオチャットなどをするのに向いています。

ajaxも最近はXMLHttpRequestだけではなくfetchという新しいAPIが出てきていたりもしているようです。

参考: [Fetch API 解説、または Web において "Fetch する" とは何か？ - Block Rockin’
Codes](http://jxck.hatenablog.com/entry/whatwg-fetch)

