我有一张这样的表:
// 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事件可以检测完全加载的页面?
答案 0 :(得分:2)
您可以使用vanilla JS事件DOMContentLoaded
并对该文件进行ajax调用。
$(document).ready(function() {
$.ajax({
url: '/last_seen.php',
type: 'POST',
dataType: "json",
data: { id: '3' }
}).done(function(data){
});
});
答案 1 :(得分:0)
据我所知,在vanilla JS中你只需要调用DOMContentLoaded。
document.addEventListener("DOMContentLoaded", function(event) {
//insert code here
});
答案 2 :(得分:-2)
您可以使用vanilla JS事件DOMContentLoaded并对该文件进行ajax调用 将ajax功能放在
中$(document).ready(function() {
//put your code here
});