読者です 読者をやめる 読者になる 読者になる

cloverrose's blog

Python, Machine learning, Emacs, CI/CD, Webアプリなど

DjangoでiOS6のSafariのCache回避

Django twhy

作ったWebアプリtwhy - プロフィールログを作ろうの挙動がiPhoneSafariでだけ変だった。

「まとめて保存」をクリックするとすごい速さで保存が完了する。
heroku logs | grep POSTで調べるとサーバーにアクセスしていない
でも、フォローの数がきちんと返ってきていて、サーバーからの返り値を使っているみたい


と助言を頂いた。
iOS6のSafariでWebサイトが正しく動作しない問題がかなり深刻・・ - NAVER まとめ

今回はDjango内でレスポンスヘッダにCache-Control:no-cacheを指定することで回避することにした。


Request and response objects | Django documentation | Djangoを参考に
次のようにしてAjax部分のレスポンスヘッダーにno-cacheを指定した。

def json_response(context={}):
    context['status'] = 'OK'
    response = HttpResponse(convert_context_to_json(context),
                            mimetype='application/json')
    response['Cache-Control'] = 'no-cache'
    return response