Skip to content
Mithril.js 2
Main Navigation AnleitungAPI

Deutsch

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Deutsch

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Aussehen

Sidebar Navigation

API

Kern-API

m(selector, attributes, children)

render(element, vnodes)

mount(root, component)

route(root, defaultRoute, routes)

request(options)

parseQueryString(string)

buildQueryString(object)

buildPathname(object)

parsePathname(string)

trust(html)

fragment(attrs, children)

redraw()

censor(object, extra)

Optionale API

stream()

Anleitung

Auf dieser Seite

redraw() ​

Beschreibung ​

Aktualisiert das DOM, nachdem Änderungen in der Anwendungsschicht vorgenommen wurden.

Ein Aufruf ist in der Regel nicht erforderlich, wenn Daten innerhalb des Ausführungskontexts eines Ereignishandlers, der in einer Mithril.js-View definiert ist, oder nach Abschluss einer Anfrage bei Verwendung von m.request geändert werden. Das Autoredraw System, das auf m.redraw() basiert, übernimmt dies automatisch.

Ein Aufruf ist jedoch erforderlich in setTimeout/setInterval/requestAnimationFrame-Callbacks oder in Callbacks von Drittanbieter-Bibliotheken.

Signatur ​

m.redraw()

ArgumentTypErforderlichBeschreibung
returnsKein Rückgabewert

Statische Elemente ​

m.redraw.sync ​

m.redraw.sync()

ArgumentTypErforderlichBeschreibung
returnsKein Rückgabewert

Funktionsweise ​

Wenn Callbacks außerhalb von Mithril.js ausgeführt werden, muss die Rendering-Engine von Mithril.js benachrichtigt werden, dass ein Redraw erforderlich ist. Solche externen Callbacks können beispielsweise setTimeout/setInterval/requestAnimationFrame-Callbacks, Callbacks von Websocket-Bibliotheken, Event-Handler in jQuery-Plugins oder XHR-Request-Callbacks von Drittanbietern sein.

Um einen Redraw auszulösen, rufen Sie m.redraw() auf. Beachten Sie, dass m.redraw() nur funktioniert, wenn Sie m.mount oder m.route verwendet haben. Wenn Sie mit m.render gerendert haben, sollten Sie m.render verwenden, um neu zu rendern.

m.redraw() löst immer asynchrone Neuzeichnungen aus, während m.redraw.sync() eine synchrone Neuzeichnung auslöst. m.redraw() ist an window.requestAnimationFrame() gebunden und wird daher typischerweise bis zu 60 Mal pro Sekunde ausgelöst. Es kann schneller ausgelöst werden, wenn Ihr Monitor eine höhere Aktualisierungsrate unterstützt.

m.redraw.sync() ist hauptsächlich dafür gedacht, die Videowiedergabe unter iOS zu ermöglichen. Dies funktioniert nur als Reaktion auf benutzergesteuerte Ereignisse. Es gibt einige Einschränkungen:

  • Sie sollten m.redraw.sync() nicht innerhalb einer Lifecycle-Methode oder der view()-Methode einer Komponente aufrufen. Dies führt zu undefiniertem Verhalten (und löst, wenn möglich, einen Fehler aus).
  • m.redraw.sync(), das von einem Eventhandler aufgerufen wird, kann dazu führen, dass das DOM verändert wird, während ein Ereignis "bubbled". Abhängig von der Struktur der alten und neuen DOM-Bäume kann das Ereignis die Bubbling-Phase im neuen Baum beenden und unerwünschte Handler auslösen.
  • Es findet keine Drosselung statt. Ein Aufruf von m.redraw.sync() löst sofort einen m.render()-Aufruf für jeden mit m.mount() oder m.route() registrierten Root aus.

m.redraw() hat keines dieser Probleme; Sie können es von überall aus aufrufen.

Pager
Vorherige Seitefragment(attrs, children)
Nächste Seitecensor(object, extra)

Veröffentlicht unter der MIT-Lizenz.

Copyright (c) 2024 Mithril Contributors

https://mithril.js.org/redraw.html

Veröffentlicht unter der MIT-Lizenz.

Copyright (c) 2024 Mithril Contributors