2016年2月19日金曜日

記事投稿後の画面遷移が遅い

GAEを使っていると、Datastoreの更新後、画面を再描画するのが遅い。
おそらく、世界中に分散されたサーバの更新をしてから、最新の情報を取得するために、時間がかかっているのだろうと思う。

対策としては、ライトキャッシュを実装する方法が考えられるが、これが結構厄介な機能だ。難しい。

要は、更新処理はバックグラウンドに回して、登録しようとしているデータをDatastoreから取るのではなく、送信されてきたデータを使ってレスポンスを返すという方法。

Datastoreの更新はレスポンスを返している間に平行して行われるから、レスポンスは早くなるはず。ただ、Datastoreの更新に失敗してしまったりした場合どうするかといった、ケア的な仕様も考えないといけない。これが結構厄介。

更新はAjaxでやってしまうという選択肢もある。レスポンスの構築はJavaScriptでやるわけだが、結構面倒だと思うな。まぁ、世の中の流れはむしろこれかな。もう少し検討してみようと思う。