Ich Abrufen von Daten aus einer MySQL-Datenbank und Anzeigen auf einer Website mit der EventSource API. Bis jetzt funktioniert alles wie erwartet, aber ich möchte die Daten in einer festen Höhe div
anzeigen und die Bildlaufleiste an die Unterseite dieser div
- d. H. Immer die neuesten Feed-Ergebnisse zuerst zeigen.Live Data Feed und Scrollbar Position
Jetzt, wenn ich die Seite lade, wird die Bildlaufleiste an der Spitze fixiert.
Ich habe den Vorschlag here versucht, aber es scheint nicht funktionieren. Liegt es daran, dass ich mit Live-Daten und AJAX-Anfragen arbeite, um die div
zu füllen?
Mein cose so weit ist;
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.js"></script>
<style type="text/css">
#result {
overflow: auto;
max-height:224px;
width: 500px;
}
</style>
<script type="text/javascript">
// scrollbar to bottom
$("document").ready(function(){
var objDiv = document.getElementById("result");
objDiv.scrollTop = objDiv.scrollHeight;
});
// retrieve data from server and display in div
$("document").ready(function(){
var source = new EventSource("data.php");
var offline;
$.ajax({
type: "POST",
url: 'data.php',
data: {lastSerial: true},
dataType: 'json',
success: function(data){
$.each(data, function(key, value) {
document.getElementById("result").innerHTML += "New transaction: " + value.SerialNo + ' ' + value.TimeStamp + "<br>";
});
} // end success
});
});//end dom ready
</script>
</head>
<body>
<div id="result"><!--Server response inserted here--></div>
</body>
</html>
Das seltsame ist das, wenn ich den Live-Feed entfernen JavaScript und manuell einig (Lorem ipsum) Text in dem es funktioniert <div id="result">
hinzufügen, wird die Bildlaufleiste am unteren Rande der div
.
ich etwas sehr dumm :)
Jede Beratung sehr geschätzt wird tun könnte.
Perfekt funktioniert, beide Lösungen. Ich habe mich entschieden, mit Ihrer zweiten '.prepend()' Methode zu gehen - viel sauberer! Vielen Dank – TheOrdinaryGeek