In Javascript räume ich den Inhalt eines DIV aus und befülle es dann neu. Gibt es eine Möglichkeit, das Layout dieser Elemente zu unterbrechen oder die Benutzeroberfläche zu sperren, bis ich mit dem Schrägstrich fertig bin HTML? Ich möchte nicht, dass irgendwelche Nachrichten erscheinen, ich möchte das Flimmern nur nicht sehen, wenn die Elemente entfernt/hinzugefügt werden.Suspend-Layout während der DOM-Interaktion
Antwort
verstecken es, indem Sie die Stil-Attribut display: none, tun das Zeug, dann wieder anzuzeigen, die div nach
Sie könnten das neue Element der Inhalt in einem DocumentFragment bauen, bevor es in das eigentliche Dokument einfügen:
var fragment = document.createDocumentFragment();
// build node in fragment
var div = /* … */; // DIV that should be replaced
div.parentNode.replaceChild(fragment, div);
Die meisten Grafikbibliotheken verwenden den gleichen 'Trick', genannt Double Buffering – xtofl
nur Beratung könnte sein, den div-Inhalt als Ganzes zu aktualisieren, indem Sie den gesamten Inhalt html und dann fügen Sie es zu dem div innerHTML auf einmal, als gegenüber Elemente zu dem div eins nach dem anderen hinzufügen, die mehr Rechenaufwand ist teuer da es sich jedes Mal um den dom-baum handelt (der leicht auch flackern kann)
Hallo, ich füge es alle auf einmal mit JQuery html() -Funktion. – Mantorok
Ich fand, dass durch die Anwendung einer festen Höhe auf die div sortierte es, die Höhe wurde nicht festgelegt, so dass es mit dem Inhalt wuchs/schrumpfte.
Danke für die Antworten, oh und Doh!
- 1. C# Warum SuspendLayout() verwenden?
- 2. Entspricht SuspendLayout und ResumeLayout in WPF
- 3. (C#) Ist SuspendLayout auf untergeordnete Steuerelemente kaskadiert?
- 4. Initialisierung während der Konstruktion?
- 5. Sitzungsproblem während der Aktualisierung
- 6. selen.common.exceptions.StaleElementReferenceException während der Seitenaktualisierung
- 7. Fehler während der Übermittlung
- 8. Ziehen während der Laufzeit
- 9. Mustererkennung während der Pipe
- 10. Startfehler während der Hauptformularerstellung
- 11. Ausgabe, während der Parametereinstellung
- 12. Mausposition während der Mausbewegung abrufen?
- 13. Lesen der Anwendungskonfiguration während Application_Start
- 14. Abrufen der Abhörport während BuildProtocol
- 15. NPE während der GWT-Kompilierung
- 16. Aufrechterhaltung der Ordnung während verschiedene
- 17. Ressourceninitialisierung während der statischen Initialisierung?
- 18. SiSense: Problem während der Installation
- 19. Fehler während der ClickOnce-Veröffentlichung
- 20. Fortschrittsbalken während der Verzögerung anzeigen?
- 21. Sitecore.Analytics.Exceptions.ContactLockException während der Zusammenführung Kontakte
- 22. Bild während der Übersetzung ändern
- 23. undefiniert Index während der Index
- 24. während der Verarbeitung laden Bild
- 25. VBA-Code während der Arbeitsmappenöffnung
- 26. Fehler während der Installation cocoapods
- 27. static_assert Triggerung während der Namensauflösung
- 28. Androidviewclient valueError während der Ausführung
- 29. Gstreamer Untertitel während der Aufnahme
- 30. UITextView, während der Bearbeitung blättern?
Das führt dann dazu, dass das div kollabiert, ich werde die Höheneinstellungen überprüfen und sehen, ob ich dabei eine gleichbleibende Höhe beibehalten kann, danke. – Mantorok
Du könntest ein äußeres Div setzen, um die Größe konsistent zu halten ... nur ein Gedanke. –
das habe ich am Ende gemacht, ich habe vergessen, dass der Div-Platzhalter versteckt wurde, also habe ich einen Platzhalter in dieses div gesetzt und alles ist in Ordnung. – Mantorok