nazolabo

フリーランスのWebエンジニアが近況や思ったことを発信しています。

IEのPragma: no-cacheの挙動

daily dayflower - PoCo::HTTP で Comet チャットサーバを作る
http://d.hatena.ne.jp/dayflower/20061116/1163663677

これ試したら、IEでStack Overflowになったから、何かと思ったら2回目のレスポンスが即座に来てた。
キャッシュ効いてるのかなーでもPragma入ってるしなーと思ったら、

[HOWTO] Internet Explorer でキャッシュを無効にする
http://support.microsoft.com/kb/234067/ja

こういう話らしい。
なので、

$res->headers->header(CacheControl => 'no-cache');
$res->headers->header(Expires => '-1');

を追加すると大丈夫。
ところでStack Overflowは別の問題な気がする(arrive_message内からwant_messageを直接呼んでいるため)んだけど、これはsetTimeoutで呼べば解決するっぽい?