- ベストアンサー
携帯(au)の「ブラウザ履歴」を封じ、サーバアクセスさせる方法
モバイルサイトのCGIを提供していますが、 au 端末には「ブラウザ履歴」として 一度アクセスしたURLは新たな通信を行わず、 メモリに溜めた以前にアクセスしたときの画面を 表示してしまいます。 CGIで、ユーザ入力によって動的に表示結果を 変えることをしているのですが、 通信にいかないので、古い結果を表示されてしまいます。 必ずサーバアクセスにいかせる方法など、 何か対策はありませんでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
キャッシュ関係といったらHTTPヘッダのPragma、Cache-Control、Expiresあたりかな? 携帯だとMETAタグは無視される可能性ありなので、HTTPヘッダとして出力するのがよいかと。 http://www.tohoho-web.com/wwwxx008.htm あと、ちょっとしたテクニックとしてURLを毎回変更するというのもあります。 たとえば↓みたいに無害なパラメータとしてtimeを仕込むとか。 http://www.***.com/hoge.cgi?1138983203 今回のケースだと「トップへ戻る」のリンクにパラメータを仕込むことになります。 ただし、お気に入りや他サイトのリンクから訪問された場合は考慮する必要があるでしょうね。 この場合は、Locationヘッダで新たなパラメータ付きURLに飛ばせば回避できるかも。 (AUは持ってないので、確認しているわけではありませんけど)
その他の回答 (1)
どういう処理を行うCGIなのか書かれていないのでなんとも言えませんが、入力内容で動的にページを表示するのなら少なくともボタンを押させますよね? URLが同一であっても読み込みますが、どういう処理をさせているのですか?
補足
いい加減な質問の仕方ですみません。 フォームからボタンで遷移した場合には 確実に通信にいきます。 リンク(<a href=~)で移動したとき 同じURLだとキャッシュの情報が使われるようです。 サイト内での行動により、 利用者ごとにポイントが増減させるしくみなのですが、 トップページに現在ポイントが表示されていて、 サイトを回遊してポイントに変化があるのに 「トップへ戻る」リンクで、はじめにトップページを 表示させたCGIをコールすると、 通信にいかずに古い情報を表示してしまうのです。 Perl利用ですが、言語の問題ではないと思います。 携帯のCGIを開発されている方なら、 ブラウザ履歴の問題はよく経験されていることだと 思ったのですが。
お礼
ありがとうございます。 HTTPヘッダはうまくいきませんでした。 #エラーになる 「無害なパラメータ」は面白いアイデアでした。 AUでうまくいきました。 とりあえず、これで対処しようかと… お気に入りでのアクセスはサーバに読みに行くようです。 ありがとうございました。