2016-06-13 77 views
2

我有一个表是这样的:如何在页面加载完成后运行查询?

// 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事件检测页面被完全加载?

回答

-2

您可以使用vanilla JS事件DOMContentLoaded并对该文件进行ajax调用。

$(document).ready(function() { 
    //put your code here 
}); 
+0

代码页面加载后运行,如果你把代码在此块.. – Kuldeep

+0

@Stack欢迎您:) – Kuldeep

2

认沽Ajax功能,您可以使用香草JS事件DOMContentLoaded,使一个AJAX调用该文件。

或者你可以使用jQuery .ready$.ajax

$(document).ready(function() { 

    $.ajax({ 
     url: '/last_seen.php', 
     type: 'POST', 
     dataType: "json", 
     data: { id: '3' } 
    }).done(function(data){ 

    }); 

}); 
+1

@Stack欢迎您:) – aifrim

0

据我所知在香草JS,你只需要调用DOMContentLoaded。

document.addEventListener("DOMContentLoaded", function(event) { 
    //insert code here 
}); 
相关问题