【发布时间】:2016-06-13 14:42:59
【问题描述】:
我有一张这样的桌子:
// last_seen
+----+---------+--------------+
| id | id_user | time |
+----+---------+--------------+
| 1 | 545 | 1339412843 |
| 2 | 653 | 1339422601 |
| 3 | 813 | 1339412612 |
| 4 | 1030 | 1339717631 |
+----+---------+--------------+
每个用户在上表中都有一行。该行包含一个 unix_time,它声明了每个用户最后一次看到的时间。
我还有这个 PHP 脚本 (命名为 update_last_seen.php),它会根据每个请求为每个用户更新上次看到的内容:
// user is logged
if( isset($_SESSION["LoginValidation"]) && $_SESSION["LoginValidation"] == 1 ) {
// it is ajax request
if( !empty($_SERVER["HTTP_X_REQUESTED_WITH"]) &&
strtolower($_SERVER["HTTP_X_REQUESTED_WITH"]) === "xmlhttprequest" ) {
$db
->prepare("UPDATE last_seen SET time = ? WHERE id_user = ?")
->execute(array(time(), $_SESSION['id']));
} -- ajax
} -- logged
目前我首先将上面的脚本运行到index.php。我的意思是每个页面在加载之前都会更新last_seen 表。所以请求确实会因更新而变慢。
现在我会在页面完成加载后发出 AJAX 推送请求。是否有任何JS事件来检测页面是否完全加载?
【问题讨论】:
标签: javascript php jquery mysql