Ajaxの高速化のための工夫(PHPとjavascriptの連携)

直接的にAjax通信を早くした訳ではないが、作っているシステムにおいてかなり処理速度を改善できた。

作っているのは、iPhoneでウェブベースで位置情報を共有するというもの。
イメージ的にはこんな感じ↓↓

複数のiPhoneで位置を測位し、それぞれの画面で全iPhoneの最新の位置をマップ表示している。
流れ的には

1 GPS測位
2 Ajaxしてサーバに記録
3 PHP動かして他のチームの最新位置をレスポンスで返す
4 各チームの位置をマッピング

これだとAjaxで自分の位置送って他チームの位置返ってくるまで待たないといかんから、けっこう時間食っていた。
んで次のように変更

1 サーバ側PHPで予め他チームの最新位置を取得しておく
2 GPS測位
3 1と2をマップで表示
4 自分の位置をAjaxで送信

こうしたら断然早くなった。
前にも書いたことあるが、PHPからjavascriptに変数渡すのはこんな感じでできる。

var json = eval('<?= $json ?>');

printでもできるけどこっちの方がシンプル。
結局のところ、Ajaxに頼らなくていい部分を別の方法に換えたってことですね。