HttpResponseでキャッシュを無効にする。

 http://ymasuda.jp/python/django/docs/request_response.html(←どうしてタイトルタグの中を仕込みませんか)

 Safariを使って当ページへAjax経由でコメントにレスを付けたら、どうもキャッシュが邪魔して最新のデータが表示されないっぽかったので(←やー、Firefoxだと問題なかったのですっかり忘れていたなぁ)、ありきたりに対処しました。ありきたりな方法なので、これで改善しなかったら気が付かなかった事にします。

 ありきたりな方法とは、サーバが返すレスポンスのヘッダーに“Pragma no-cache”やら“Cache-Control no-cache”やらを追加するやり方です。DjangoのHttpResponseでは辞書風にヘッダーを扱えるので、下記の様にしました。

page = render_to_responseなどでHttpResponseを生成するpage['Pragma'] = 'no-cache'
page['Cache-Control'] = 'no-cache'
return page

 Firefoxの超便利機能拡張これは手放せないFirebugで確認しましたら、一応ヘッダーは追加されていましたのでこれでOK。なんじゃないの。