Skip to content
Mithril.js 2
Main Navigation ÚtmutatóAPI

magyar

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

magyar

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

Megjelenés

Sidebar Navigation

API

Alapvető 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)

Opcionális API

stream()

Útmutató

Ezen az oldalon

redraw() ​

Leírás ​

Frissíti a DOM-ot az alkalmazás adatszintjében bekövetkezett változások után.

Általában nem szükséges meghívnod, ha az adatokat egy Mithril.js nézetben definiált eseménykezelő végrehajtási környezetében módosítod, vagy a m.request használatával a kérés befejezte után. Az autoredraw rendszer, amely a m.redraw()-ra épül, automatikusan gondoskodik erről.

Akkor kell meghívnod a setTimeout/setInterval/requestAnimationFrame visszahívásaiban, illetve harmadik féltől származó könyvtárak visszahívásaiban, ha az adatok változása nem a Mithril.js által kezelt környezetben történik.

Szignatúra ​

m.redraw()

ParaméterTípusKötelezőLeírás
returnsNincs visszatérési értéke.

Statikus tagok ​

m.redraw.sync ​

m.redraw.sync()

ParaméterTípusKötelezőLeírás
returnsNincs visszatérési értéke.

Hogyan működik ​

Amikor a Mithril.js által nem kezelt visszahívások futnak, értesítened kell a Mithril.js renderelő motorját, hogy szükség van az újrarajzolásra. Ilyen külső visszahívások lehetnek a setTimeout/setInterval/requestAnimationFrame visszahívásai, web socket könyvtárak visszahívásai, jQuery bővítmények eseménykezelői, harmadik féltől származó XHR kérések visszahívásai stb.

Az újrarajzolás elindításához hívd a m.redraw() függvényt. Fontos, hogy a m.redraw csak akkor működik, ha a m.mount vagy a m.route függvényt használtad. Ha a m.render segítségével rendereltél, akkor a m.render függvényt kell használnod az újrarajzoláshoz.

A m.redraw() mindig aszinkron újrarajzolást indít, míg a m.redraw.sync() szinkron újrarajzolást. A m.redraw() a window.requestAnimationFrame()-hez van kötve, ezért általában másodpercenként legfeljebb 60-szor fut le. Gyorsabban is futhat, ha a képernyőd magasabb frissítési gyakoriságú.

A m.redraw.sync() elsősorban arra szolgál, hogy a videók lejátszása működjön iOS-en. Ez csak felhasználó által kiváltott eseményekre működik, és számos figyelmeztetéssel jár:

  • Tilos meghívnod a m.redraw.sync() függvényt egy életciklus metódusból vagy egy komponens view() metódusából. Ennek következményeként definiálatlan viselkedés léphet fel (ha lehetséges, hibát dob).
  • Az eseménykezelőből meghívott m.redraw.sync() a DOM módosulását okozhatja, miközben egy esemény buborékozik. A régi és új DOM fák szerkezetétől függően az esemény befejezheti a buborékolási fázist az új fában, és nem szándékolt kezelőket aktiválhat.
  • Nincs szabályozás. A m.redraw.sync() egyetlen hívása azonnal egy m.render() hívást eredményez a m.mount() vagy m.route() segítségével regisztrált gyökérelemre.

A m.redraw()-nak nincsenek ilyen problémái, bárhonnan meghívhatod.

Pager
Előző oldalfragment(attrs, children)
Következő oldalcensor(object, extra)

A MIT licenc alapján kiadva.

Copyright (c) 2024 Mithril Contributors

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

A MIT licenc alapján kiadva.

Copyright (c) 2024 Mithril Contributors