Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Yii 如何显示用户离开页面的时间_Yii - Fatal编程技术网

Yii 如何显示用户离开页面的时间

Yii 如何显示用户离开页面的时间,yii,Yii,我的Yii应用程序中有一个简单的页面跟踪系统。当用户查看单个项目时,我使用页面id,会话id,时间更新数据库。我还有一个time\u end列,但我不确定更新此字段的最简单方法是什么 目前非常简单,如下所示: public function actionView($id) { // View a single item // Load item $model = Item::model()->loadItem($id); // load viewed item model $view

我的Yii应用程序中有一个简单的页面跟踪系统。当用户查看单个项目时,我使用
页面id
会话id
时间更新数据库。我还有一个
time\u end
列,但我不确定更新此字段的最简单方法是什么

目前非常简单,如下所示:

public function actionView($id) { // View a single item

// Load item
$model = Item::model()->loadItem($id); 

// load viewed item model
$viewedPage = new ViewedItem;
// set attributes
$viewedPage->page_id = $model->id;
$viewedPage->session_id = Yii::app()->session->sessionId;
$viewedPage->time_started = new CDbExpression('NOW()'); 
$viewedPage->save();

$this->render('view', array(
        'model' => $this->loadModel($id, 'Item'),
}
任何指导都会有帮助

谢谢


Jonny

由于HTTP是一种无状态协议,我们无法确定用户何时离开页面。但有两种方法可以做到这一点

  • Javascript方法: 当用户离开页面时触发事件“onbeforeunload”。您可以查找该事件,然后使用$.post()或$.ajax()执行一个操作,该操作将更新当前
    会话id的
    $time\u end

  • Yii方法(代码):服务器端可以有一个脚本来检查每个会话。它将检查如果来自
    会话id
    的最后一个请求是
    x\u秒
    旧的,那么我们可以将上次记录的时间设置为
    $time\u end


  • 我认为这些都是有用的。

    由于HTTP是一种无状态协议,我们无法确定用户何时离开页面。但有两种方法可以做到这一点

  • Javascript方法: 当用户离开页面时触发事件“onbeforeunload”。您可以查找该事件,然后使用$.post()或$.ajax()执行一个操作,该操作将更新当前
    会话id的
    $time\u end

  • Yii方法(代码):服务器端可以有一个脚本来检查每个会话。它将检查如果来自
    会话id
    的最后一个请求是
    x\u秒
    旧的,那么我们可以将上次记录的时间设置为
    $time\u end


  • 我认为这些都是有用的。

    您需要发布整个控制器的代码,如果可以的话,我可以帮您。我需要看看你们如何调用模型。你们需要发布整个控制器的代码,如果可以的话,我可以帮你们。我要看看你们怎么称呼模特。谢谢,我会调查更多谢谢,我会调查更多