Skip to content
Mithril.js 2
Main Navigation GuidaAPI

Italiano

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

Italiano

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

Aspetto

Sidebar Navigation

API

API principale

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)

API opzionale

stream()

Guida

In questa pagina

redraw() ​

Descrizione ​

Aggiorna il DOM in seguito a una modifica dei dati dell'applicazione.

NON è necessario chiamare m.redraw() se i dati vengono modificati all'interno del contesto di esecuzione di un gestore di eventi definito in una view di Mithril.js, o al completamento di una richiesta quando si usa m.request. Il sistema di autoredraw, basato su m.redraw(), gestirà automaticamente l'aggiornamento.

È invece necessario chiamare m.redraw() nelle funzioni di callback di setTimeout/setInterval/requestAnimationFrame, o nelle callback provenienti da librerie di terze parti.

Firma ​

m.redraw()

ArgomentoTipoRichiestoDescrizione
RestituisceNon restituisce alcun valore

Membri statici ​

m.redraw.sync ​

m.redraw.sync()

ArgomentoTipoRichiestoDescrizione
RestituisceNon restituisce alcun valore

Come funziona ​

Quando le callback vengono eseguite al di fuori del controllo di Mithril.js, è necessario notificare al motore di rendering di Mithril.js che è richiesto un aggiornamento del DOM (redraw). Esempi di queste callback includono quelle di setTimeout/setInterval/requestAnimationFrame, le funzioni di callback di librerie web socket, i gestori di eventi nei plugin jQuery, le callback di richieste XHR di terze parti, ecc.

Per attivare un redraw, chiama m.redraw(). Nota che m.redraw funziona solo se è stato utilizzato m.mount o m.route. Se hai renderizzato tramite m.render, dovresti usare m.render per eseguire il redraw.

m.redraw() attiva sempre un redraw asincrono, mentre m.redraw.sync() attiva un redraw sincrono. m.redraw() è legato a window.requestAnimationFrame(). Pertanto, di solito viene attivato al massimo 60 volte al secondo. Potrebbe essere attivato più frequentemente se il tuo monitor ha una frequenza di aggiornamento più alta.

m.redraw.sync() è principalmente pensato per supportare la riproduzione di video su iOS e funziona solo in risposta a eventi generati dall'utente. Presenta diverse limitazioni:

  • Non dovresti chiamare m.redraw.sync() da un metodo del ciclo di vita o dal metodo view() di un componente. In caso contrario, si verificherà un comportamento indefinito (e verrà generato un errore quando possibile).
  • m.redraw.sync(), se chiamato da un gestore di eventi, può causare la modifica del DOM mentre un evento è in fase di bubbling. A seconda della struttura degli alberi DOM precedenti e successivi, l'evento potrebbe terminare la fase di bubbling nel nuovo albero e attivare gestori indesiderati.
  • Non è soggetto a throttling. Una chiamata a m.redraw.sync() causa immediatamente una chiamata a m.render() per ciascuna root DOM registrata con m.mount() o m.route().

m.redraw() non presenta nessuno di questi problemi e può essere chiamato da qualsiasi punto del codice.

Pager
Pagina precedentefragment(attrs, children)
Pagina successivacensor(object, extra)

Rilasciato sotto la licenza MIT.

Copyright (c) 2024 Mithril Contributors

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

Rilasciato sotto la licenza MIT.

Copyright (c) 2024 Mithril Contributors