岩本隆史の日記帳(アーカイブ)

はてなダイアリーのサービス終了をうけて移行したものです。更新はしません。

Ajax部分を修正@リリースチェッカー

リリースチェッカーをAjax化したのは良いのですが、さっそく気に入らない部分が見つかったので修正しました。

  1. 「戻る」ボタンで戻ったときに処理結果がリセットされてしまうため、location.hashでクエリを保存するよう変更
  2. prototype.jsAjax.Requestの結果が「304 Not Modified」の場合でも処理成功とみなすよう変更

1点目は「http://la.ma.la/blog/diary_200502270128.htm」で良く知られた内容です。

2点目は、Ajax.Requestの仕様を知らなかったのが原因でした。304でもonFailureハンドラが呼び出されるんですね。「msanolog: [Ajax] If-Modified-Sinceヘッダを利用してWebページのキャッシュを行うXMLHttpRequestラッパー」が参考になりますが、肝心のラッパースクリプトがリンク切れで残念。