2016-06-13 78 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 
}); 
相關問題