sto usando questo codice per aggiornare un div
con una richiesta AJAXInnerHTML append invece di sostituire
var xmlhttp;
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("some_id").innerHTML += xmlhttp.responseText;
}
}
xmlhttp.open("GET", "http://example.com/");
xmlhttp.setRequestHeader('Content-Type', 'utf8');
xmlhttp.send();
Tutto funziona bene, il problema è che quando il div
con id some_id
ha un sacco di contenuti in esso Posso vedere il contenuto scomparire e poi apparire aggiornato dopo che la richiesta AJAX è stata eseguita.
Penso che sia perché
document.getElementById("some_id").innerHTML += xmlhttp.responseText;
sta cancellando e sostituendo la innerHTML
del div
con il precedente innerHTML
più il nuovo contenuto, con un conseguente comportamento previous content → blank → updated content
.
C'è un modo per aggiungere il nuovo contenuto a div
invece di sostituire l'intero contenuto con quello nuovo?
stai usando jQuery o JavaScript nativo? – Raghu
prova ad aggiungere elemento figlio invece di sostituire l'intero html –
@Raghu Sto usando entrambi, ma una soluzione javascript pura sarebbe meglio per me – BackSlash