Ich verwende diesen Code, um eine div
mit einer AJAX-Anfrage zu aktualisieren
Alles funktioniert gut, das Problem ist, dass, wenn die div
mit der id some_id
eine Menge Inhalt hat, ich den Inhalt verschwinden sehe und dann aktualisiert werde, nachdem die AJAX-Anfrage ausgeführt wurde.
Ich denke, dass es daran liegt,
%Vor% Löscht und ersetzt den innerHTML
von div
mit dem vorherigen innerHTML
plus den neuen Inhalt, was zu einem previous content → blank → updated content
Verhalten führt.
Gibt es eine Möglichkeit, den neuen Inhalt an den div
anzuhängen, anstatt seinen gesamten Inhalt durch den neuen zu ersetzen?
Angenommen, htmlhttp.responseText
ist ein Knoten:
Wenn Sie nur eine Zeichenfolge von HTML haben (was wahrscheinlich ist), dann:
%Vor%Andererseits müssen Sie neue Elemente aus einer Zeichenfolge anfügen:
%Vor%Referenzen:
Sie könnten Element.insertAdjacentHTML()
verwenden.
insertAdjacentHTML () analysiert den angegebenen Text als HTML oder XML und fügt die resultierenden Knoten an einer bestimmten Position in den DOM-Baum ein . Es analysiert nicht das Element, auf dem es verwendet wird, und daher werden die vorhandenen Elemente im Element nicht beschädigt. Dies und die Vermeidung des zusätzlichen Schritts der Serialisierung machen es viel schneller als direkte innerHTML-Manipulation.
Ich denke, Sie würden
tun %Vor%Tags und Links javascript html