ユーザーがページにアクセスしてページを離れたときに、他のページの詳細とともにいくつかのデータを保存する簡単なスクリプトを作成しています。スクリプトは「機能」しますが、常に機能するとは限りません。散発的に機能しているようです。コンソールエラーが発生しないときに発生しません。サーバー側は正常に動作します。
window.onload = function() {
var timeStarted, i, c, l, timeLeft, pageData;
timeStarted = new Date().getTime();
i = <?php echo $model->id; ?>;
c = <?php echo $model->cat; ?>;
l= <?php echo $model->loc; ?>;
window.onbeforeunload = function(){
timeLeft = new Date().getTime();
pageData = [{name: 'timeStarted', value: timeStarted},
{name: 'i', value: job},
{name: 'c', value: cat},
{name: 'l', value: loc},
{name: 'timeLeft', value: timeLeft}];
// Set url for JavaSCript
var url = '<?php echo Yii::app()->createUrl("item/viewedItemInformation"); ?>';
<?php echo CHtml::ajax(array(
'url'=>'js:url',
'data'=> "js: pageData",
'type'=>'post',
'dataType'=>'json',
)); ?>;
}
}
ノート
この投稿window.onbeforeunload not working in chromeを読んだところですが、chromeを使用しています。ただし、FFでも同じ結果が得られるようです。
これを解決するための正しい方法は何ですか?
更新 文字通り、それが機能する状況と機能しない状況を伝えることができませんでした。この機能はアイテム ページでのみ使用しています。アイテムページをクリックして別のアイテムにアクセスするために離れると、それが機能することもあれば、それほど散発的ではないこともあります。私が言えることは、ホームページのような非アイテム ページのアイテム ページを離れると、レコードが記録されないということです。