2015年12月1日火曜日

[解決]ブラウザのバックボタンを押しても強制的に一回リロードさせる方法

ぐるんぐるん回るjqueryを入れたのだが、ブラウザのバックボタンで戻るとキャッシュを拾ってか、思いっきりずれる現象に。で、F5すると元に戻るのである。なぜかChromeだけで起きており、FFやIEじゃ起きないので、何とか強制的にどんな形でも戻ってきたら一回リロードさせたいといろいろ調べた。
それがなかなかうまくいかない。キャッシュを保持しないmetaや一回リロードさせるというJSなどいろいろ突っ込んでみたのだが効果なし。唯一効果があるのは、エンドレスな setTimeout("location.reload()",●000); だったりする(苦笑。詳しい人曰く「cookieでやれば?」と言われたのだが・・・私がcookieに全く明るくないので、何とかねちねちと調べ続けたら、「HTML5 における no-cache」というものがあるそうで試したところ、うまくいった! sample.appcacheというファイルを作り、それを入れておけばキャッシュ保持はされない模様。とりあえず最小限の設定で入れたところでちゃんと動作しているのを確認した。
驚いたのが、F5で読み込んで正しいポジションにいると思っていたのが、それこそがキャッシュだったということだ(汗。うそーんって感じ。

▼sample-no-cache.appcache

CACHE MANIFEST
NETWORK:
*

▼HTML

<!DOCTYPE HTML>
<html lang="ja">
<head>

↓

<!DOCTYPE HTML>
<html lang="ja" manifest="sample-no-cache.appcache">
<head>


0 件のコメント:

コメントを投稿