この手法を使うと、webアプリでajaxを用いてpostしたときの体感速度がクライアントアプリ並になる。

従来の方法

  1. onclick="update(this);"などと設定
  2. update(this)で更新クエリを発行
  3. callback関数に処理が返ってくるのを待つ
  4. 更新クエリのcallback関数で更新内容をインターフェイスに反映

→callback関数に処理が返ってくるまでインターフェイスが反映がされず、遅い。

みのるajaxpost高速化

  1. onclick="update(this);"などと設定
  2. update(this)で更新クエリを発行する前に、インターフェイスを更新
  3. callback関数に処理が返ってくるのを待つ
  4. 更新に失敗していたら、callback関数でインターフェイス上で取り消し処理やエラー処理をする

→callback関数に処理が返ってくるまでの待ち時間がなく、インターフェイスが瞬時に更新されるため、体感速度が爆速。
# ただし、更新の失敗が多い場合、callback関数の反映やエラーをユーザーが見逃していると、「反映したはずなのに更新されていない」ということがおこりがちなので、留意されたい。

みのるajaxpost高速化におけるcallback関数のベストプラクティスになりそうな手法

callback関数は、更新失敗時の処理(インターフェイスの巻き戻し&エラー通知)だけを書いて共通化することができるはずなので、たくさん書く必要はないと思われる。

補足

従来のcallback関数による更新が一般的なのは、callback関数が便利すぎるためだと思う。「言語が思考を規定する」というサピアウォーフの仮説(参考)によるバイアスで発想が制限されているため、通信処理の更新はcallback関数でやるのが常態化しているのだと推測したりしなかったりしている。SNSとかゲームくらいのいい加減なシステムならガンガンつかっていいはず。特に、ゲームはレスポンス命なので、この技術を応用するとユーザー体験が圧倒的に向上するはず。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

筆者について

■ミリオンダウト


このウィキの管理人が考案した
大富豪+ダウトのオンライン対戦対戦トランプゲーム。
iOS,Android,PCからすぐに遊べます。
ここからプレイ!

■コミュニティ


■筆者(予定)
ぷりっぷりのおしり(管理人)
Kanedo
mosa
非北京
ふんばば
とつげき東北

■その他
メンバー同士の勝敗記録
プレイヤー紹介
記事一覧
ボンバーマンまとめ
Rainbow Uの歩み

Wiki内検索

メンバーのみ編集できます