2016-06-13 9 views
2

Ich habe eine Tabelle wie folgt aus:Wie führe ich eine Abfrage durch, wenn die Seite fertig geladen ist?

// last_seen 
+----+---------+--------------+ 
| id | id_user |  time  | 
+----+---------+--------------+ 
| 1 | 545  | 1339412843 | 
| 2 | 653  | 1339422601 | 
| 3 | 813  | 1339412612 | 
| 4 | 1030 | 1339717631 | 
+----+---------+--------------+ 

Jeder Benutzer hat über eine Zeile in der Tabelle. Diese Zeile enthält einen unix_time, der die Zeit der letzten gesehen für jeden Benutzer deklariert.

Auch habe ich dieses PHP-Skript (benannt update_last_seen.php), die zuletzt für jeden Benutzer pro jeder Anfrage gesehen Updates:

// 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 

Derzeit betreibe ich Skript oben zunächst in index.php. Ich meine jede Seite aktualisiert last_seen Tabelle vor dem Laden. Die Anfrage wird also durch das Update verlangsamt.

Jetzt würde ich eine AJAX Push-Anfrage machen, wenn die Seite fertig geladen wurde. Gibt es ein JS-Event, um die Seite vollständig zu erkennen?

Antwort

-2

Sie können das Vanilla JS-Ereignis DOMContentLoaded verwenden und einen Ajax-Aufruf an die Datei senden.
Put Ajax-Funktionalität in den

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

den Code ausführen, nachdem Pageload, wenn Sie Code in diesem Block setzen .. – Kuldeep

+0

@Stack Sie willkommen :) – Kuldeep

2

können Sie das Ereignis Vanille JS verwenden DOMContentLoaded und einen Ajax-Aufruf an die Datei vornehmen.

Oder Sie könnten verwenden jQuery .ready und $.ajax

$(document).ready(function() { 

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

    }); 

}); 
+1

sind @Stack Sie willkommen :) sind – aifrim

0

Soweit ich in Vanille JS wissen Sie müssen nur DOMContentLoaded nennen.

document.addEventListener("DOMContentLoaded", function(event) { 
    //insert code here 
}); 
Verwandte Themen