
- 2024年10月
- 2021年5月
- 2020年8月
- 2020年6月
- 2020年5月
- 2019年1月
- 2018年8月
- 2018年6月
- 2018年5月
- 2018年3月
- 2018年1月
- 2017年12月
- 2017年11月
- 2017年10月
- 2017年9月
- 2017年8月
- 2017年7月
- 2017年6月
- 2016年11月
- 2013年9月
- 2013年8月
- 2013年6月
- 2013年5月
- 2013年4月
- 2013年3月
- 2013年2月
- 2013年1月
- 2012年12月
- 2012年11月
- 2012年10月
- 2012年9月
- 2012年6月
- 2012年5月
- 2012年4月
- 2012年2月
- 2011年7月
- 2011年5月
- 2011年4月
- 2011年2月
- 2010年12月
- 2010年11月
- 2010年10月
- 2010年9月
- 2010年8月
- 2010年7月
- 2010年6月
- 2010年5月
- 2010年4月
- 2010年3月
- 2010年2月
- 2010年1月
- 2009年12月
- 2008年2月
- 2008年1月
- 2007年12月
- 2007年5月
- 2007年4月
- 2007年3月
- 2007年2月
静的ファイルのキャッシュ無効化(JavaScriptの場合) / magicien
ウェブサーバ上でプログラムからtxtファイルを頻繁に更新しているような場合、ウェブブラウザでキャッシュ機能が有効になっていると(というか大抵なっているので)、ローカルにあるキャッシュを見に行ってしまい、サーバ上の最新のtxtファイルを見に来てくれない、という場合の対応。時と場合によりやり方はいろいろあるんだろうけど、JavaScriptでは次のようなソースを書いた。
var url = "dynamic_content.txt"; url += "?" + (new Date() * 1); // disable cache var data; new Ajax.Request(fileName, { method: 'get', asynchronous: false, onComplete: function(result){ data = result.responseText; }, });URLの後ろに時刻(ミリ秒)をクエリで追加してやると、あたかも違うファイルを呼び出しているように見えるので、毎回サーバまで読み込みに行くようになる。
上記の例だと、urlの中身は "dynamic_content.txt?1349282126489" のようになる。
new Date()のままだと、"Thu Oct 04 2012 01:35:26 GMT+0900 (JST)" のような文字列になるため、適当に数値計算をして、整数にキャストする。ただ、"new Date() + 0" みたいなことをすると文字列が連結され、"Thu Oct 04 2012 01:35:26 GMT+0900 (JST)0" となってしまうため、0を引くなり、1を掛けるなりしてやればOK。
まぁクエリが日付のままでも問題無いとは思いますが。
タグ:
この記事のURL: https://darkhorse2.0spec.jp/175/
2012/10/04(Thu) 01:44:24