如何在页面加载完成后运行查询?

时间:2016-06-13 14:43:00

标签: javascript php jquery mysql

我有一张这样的表:

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

3 个答案:

答案 0 :(得分:2)

您可以使用vanilla 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 :(得分: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
}); 
相关问题