Skip to content
Mithril.js 2
Main Navigation NávodAPI

čeština

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

čeština

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

Vzhled

Sidebar Navigation

API

Základní 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)

Volitelné API

stream()

Návod

Na této stránce

redraw() ​

Popis ​

Aktualizuje DOM po změně dat v aplikační vrstvě.

Není nutné volat tuto funkci, pokud jsou data modifikována v kontextu obslužné rutiny události definované v pohledu Mithril.js. Stejně tak není nutné ji volat po dokončení požadavku při použití m.request. O toto se stará systém autoredraw, který je postaven na m.redraw().

JE nutné ji volat v callbackech setTimeout/setInterval/requestAnimationFrame nebo z knihoven třetích stran, které nemají integraci s Mithril.js.

Signatura ​

m.redraw()

ArgumentTypPovinnýPopis
returnsNevrací žádnou hodnotu.

Statické členy ​

m.redraw.sync ​

m.redraw.sync()

ArgumentTypPovinnýPopis
returnsNevrací žádnou hodnotu.

Jak to funguje ​

Pokud se callbacky spouštějí mimo kontrolu Mithril.js, je nutné upozornit vykreslovací engine Mithril.js, že je potřeba provést překreslení. Mezi externí callbacky patří například setTimeout/setInterval/requestAnimationFrame, knihovny web socketů, obslužné rutiny událostí v pluginech jQuery, požadavky XHR třetích stran atd.

Pro spuštění překreslení zavolejte m.redraw(). Upozorňujeme, že m.redraw funguje pouze v případě, že jste použili m.mount nebo m.route. Pokud jste renderovali pomocí m.render, měli byste pro překreslení použít m.render.

m.redraw() vždy spouští asynchronní překreslení, zatímco m.redraw.sync() spouští synchronní překreslení. m.redraw() je svázán s window.requestAnimationFrame(). Proto se typicky spouští maximálně 60krát za sekundu. Může se spouštět i rychleji, pokud má váš monitor vyšší obnovovací frekvenci.

m.redraw.sync() je určen především pro zajištění správného přehrávání videí v iOS. Funguje pouze v reakci na události spuštěné uživatelem. Použití této metody s sebou nese několik upozornění:

  • Neměli byste volat m.redraw.sync() z metody životního cyklu nebo metody view() komponenty. Pokud tak učiníte, povede to k nedefinovanému chování (v ideálním případě dojde k vyhození chyby).
  • m.redraw.sync() volané z obslužné rutiny události může způsobit úpravu DOM během šíření události. V závislosti na struktuře starých a nových stromů DOM může událost dokončit fázi šíření v novém stromu a aktivovat nežádoucí obslužné rutiny.
  • Není omezen počet volání. Jedno volání m.redraw.sync() způsobí okamžité volání m.render() pro každý kořen registrovaný pomocí m.mount() nebo m.route().

m.redraw() nemá žádný z těchto problémů a můžete jej volat odkudkoli.

Pager
Předchozí stránkafragment(attrs, children)
Další stránkacensor(object, extra)

Vydáno pod licencí MIT.

Copyright (c) 2024 Mithril Contributors

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

Vydáno pod licencí MIT.

Copyright (c) 2024 Mithril Contributors