Ich habe eine Auswahlliste, die mit meiner Logdatei gefüllt ist. Jede Sekunde sendet Javascript eine GET-Anfrage an den Server, der die Protokolldatei liest und die Liste auffüllt. Aber nach jeder GET-Anfrage scrollt die Liste wieder nach oben. Was ich machen möchte ist, dass die Anfragen die Schriftrolle nicht beeinflussen, so dass ich frei durch die Liste scrollen kann.Pflegen Scroll-Position in der Liste
<select id = "list" name=servers size=38 style=width:1028px>
<script type="text/javascript">
window.onload = function() {
if (bytes === undefined) {
var bytes=0;
}
var url = "/test/log.php?q=";
function httpGet(url)
{
var xhttp = new XMLHttpRequest();
xhttp.open("GET", url, true);
xhttp.onload = function (e) {
if (xhttp.readyState === 4) {
if (xhttp.status === 200) {
var list = "";
console.log(xhttp.responseText);
obj = JSON.parse(xhttp.responseText);
for(var key in obj) {
list += obj[key];
if (sessionStorage.logfile == null) {
sessionStorage.logfile == "Log";
}
}
bytes = parseInt(list);
document.getElementById("list").innerHTML = sessionStorage.logfile + list;
sessionStorage.logfile += list;
}
};
xhttp.onerror = function (e) {
console.error(xhttp.statusText);
}
};
xhttp.send();
}
var updateInterval = 1000;
function update() {
httpGet(url + bytes);
setTimeout(update, updateInterval);
}
update();
}
</script>
Get selected Schlüssel immer beim Aktualisieren der Liste und set .options [key] .ausgewählt nach der Aktualisierung. –
@GovindSamrow Können Sie genauer sein? – Mirakurun
Sie ersetzen die gesamte Liste, um Ihre Scroll-Position beizubehalten, sollten Sie stattdessen den Wert der Elemente in der Liste aktualisieren. Können Sie eine typische Ajax-Antwort posten, damit wir das Format sehen können, mit dem Sie arbeiten? – Trey