ページ離脱などの際にデータ保存する時間をウェイトさせる方法

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

仕事で苦労したトコロを備忘録しておきます。

「window.beforeunload」などのイベントの際にajaxで離脱イベントログをサーバーにsendするような時、
ブラウザはページが切り替わったら、サーバーセッションも瞬時に切ってしまう事は、容易に想像できる。

でも、これはブラウザ毎に挙動が違っていて、ちゃんとajaxでもセッション完了を待ってくれるブラウザもあれば、強制的にちょんぎられる場合もある。

ただ、待ってくれる保証がない以上、これは、システム側で確実にサーバーにデータを送る必要があるので、その時の対応。

指定時間分waitさせる関数

実行処理

これで500ミリ秒間、ブラウザをキープしてくれる。

きれいにセッションが切れた事を判定するには、ajax側でレスを返してそれを判定するという方法もあるが、この方法で、計測誤差もそんなに出ていないことを考えると、さほど悪くないと思われる。

いかがだろうか?

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です