JavaScriptを【戻る】で動かしたくない

[統計] HTMLからXHTMLへの移行を進めていますか?



0   名前: けんた : 2007/03/13(火) 18:25  ID:tHMLGou5 sub-9g
社内SEをやっております けんた と申します。
こちらには初めて質問させていただきます。

実は、弊社運営のEコマースサイトで、購入商品の分析を行うために
他の分析サービスの会社にその情報を送信しております。

具体的には、よくある、分析したいページに分析サービス、アクセス分析サービス
会社から知らせれているJavaScriptのタグを埋め込み、パラメータを渡すと
いうものです。

弊社でも商品購入決定のページにそのタグを埋め込み情報を送信しています。
ところが、困ったことに商品購入決定ページから他のページに移り、IEの【戻る】
ボタンを押されてしまうと、キャッシュされた商品購入決定ページが表示される
と同時に、分析用のJavaScriptが再度動いてしまい、データが重複しておくられて
しまうという現象がおきてしまい困っています。。

そこで。。
【戻る】をおされてもこのJavaScriptが動かないようにするためにはどうしたら
よいのか、同じような経験をされたかたがいらっしゃいましたら情報をいただけれ
ばなと思い質問いたしました。

とりあえず、思いついたのが。。。
【このページは期限切れです】にするために以下のタグを<HEAD>に埋め込み、
キャッシュを無効にしてみたのですが、キャッシュが表示されてしまい、うまく
効いてくれません。。

<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="0">

いろいろ調べたところこのタグは当てにならないとかかれており、どうしたもの
かとまた悩んでいるところです。。。


サーバ側でセッションをつかって制御しようとも考えたました。
1−直前のページでセッション変数にフラグをたてる。
2−フラグがたっていれば分析用JavaScriptをうごかす
3−フラグをクリアする。

という仕組みを埋め込んでみたのですが、【戻る】(キャッシュ)で表示される
ページは結局、JavaScriptが動く条件のページがクライアントで動いてしまう
ため、サーバサイドでの制御は意味がありませんでした。。。

このような、状態を解決されたかたがいらっしゃいましたらぜひご教示ください。


1   名前: 匿名 : 2007/03/13(火) 18:25  ID:Z/T9lFdK sub-kJ
JavaScript の動作は避けられない。その前提で、サーバ側で情報をふるい分けた方が良いよ。cookie なり session なりで、短時間なら同一クライアントの識別は可能なはず。

例えば Firefox だと、戻ってもスクリプトの実行結果自体がキャッシュされうる。IE のインターネットオプションの設定次第でもそうなる。だが、それはあくまでブラウザ側の問題。クライアント側スクリプトの実行可否は、サービス提供側から立ち入れる領域じゃない。

2   名前: けんた : 2007/03/13(火) 18:25  ID:tHMLGou5 sub-9g
匿名さん

ご回答、アドバイスありがとうございました。
まず、サーバからどうのこうのするのは全く問題外ということですね。。。

とりあえず、クライアント JavaScript or Cookie で対応を考えて見ます。
また、結果を報告できればと思います。。。

でも、よくアクセス解析サービスとかありますが、あれは戻るが押されても
1アクセスがカウントされてるのでしょうか。。

みなさん、クライアント側で2度実行されないように対応しているのでしょうか。。

3   名前: 匿名 : 2007/03/13(火) 18:25  ID:Z/T9lFdK sub-kJ
> クライアント側で2度実行されないように対応しているのでしょうか

そうじゃなくて、CGI スクリプト側で接続元(または IP アドレス)を見て、一定時間内に同一クライアント(と思しきもの)からの接続があった場合はカウントしない、というだけ。クライアント側を操作することはできないんだってばよ。

あるいは、JavaScript をどういう形で実行しているのか不明だが、Cookie が残っている場合のみ実行させてみるとか(if (checkCookie()) { ...; })。どの道、クライアント側で Cookie が無効の場合は無力だけど。

一覧へ戻る