Skip to content
Mithril.js 2
Main Navigation PrzewodnikAPI

Polski

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

Polski

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

Wygląd

Sidebar Navigation

API

Podstawowe 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(obiekt, extra)

Opcjonalne API

stream()

Przewodnik

Na tej stronie

redraw() ​

Opis ​

Aktualizuje drzewo DOM po zmianie danych w warstwie aplikacji.

NIE musisz wywoływać m.redraw(), jeśli dane są modyfikowane wewnątrz funkcji obsługi zdarzeń zdefiniowanych w widokach Mithril.js lub po zakończeniu żądania HTTP wykonanego za pomocą m.request. System autoodświeżania, który bazuje na m.redraw(), automatycznie obsłuży te przypadki.

MUSISZ wywoływać tę funkcję wewnątrz funkcji zwrotnych setTimeout/setInterval/requestAnimationFrame lub funkcji zwrotnych pochodzących z bibliotek zewnętrznych.

Sygnatura ​

m.redraw()

ArgumentTypWymaganyOpis
returnsFunkcja nie zwraca żadnej wartości.

Statyczne składowe ​

m.redraw.sync ​

m.redraw.sync()

ArgumentTypWymaganyOpis
returnsFunkcja nie zwraca żadnej wartości.

Jak to działa ​

Kiedy funkcje zwrotne spoza ekosystemu Mithril.js są uruchamiane, musisz poinformować silnik renderujący Mithril.js o konieczności odświeżenia widoku. Zewnętrzne funkcje zwrotne mogą obejmować wywołania zwrotne setTimeout/setInterval/requestAnimationFrame, wywołania zwrotne bibliotek WebSocket, procedury obsługi zdarzeń wtyczek jQuery, wywołania zwrotne żądań XHR stron trzecich itp.

Aby wywołać odświeżenie, użyj m.redraw(). Pamiętaj, że m.redraw działa tylko wtedy, gdy używasz m.mount lub m.route. Jeśli renderowanie odbywa się za pomocą m.render, powinieneś użyć m.render do odświeżenia.

m.redraw() zawsze wywołuje odświeżanie asynchroniczne, podczas gdy m.redraw.sync() wywołuje odświeżanie synchroniczne. m.redraw() jest powiązane z window.requestAnimationFrame(). Zazwyczaj uruchamia się maksymalnie 60 razy na sekundę. Może uruchamiać się częściej, jeśli Twój monitor ma wyższą częstotliwość odświeżania.

m.redraw.sync() jest przeznaczone głównie do poprawnego odtwarzania wideo w iOS. Działa to tylko w odpowiedzi na zdarzenia wywołane przez użytkownika. Należy jednak pamiętać o kilku ograniczeniach:

  • Nie powinieneś wywoływać m.redraw.sync() z metod cyklu życia ani z metody view() komponentu. Może to prowadzić do nieprzewidywalnych rezultatów (może spowodować błąd).
  • m.redraw.sync() wywołane z poziomu procedury obsługi zdarzeń może spowodować modyfikację drzewa DOM podczas propagacji zdarzenia (bubbling). W zależności od struktury starych i nowych drzew DOM, zdarzenie może zakończyć fazę propagacji w nowym drzewie i wywołać niepożądane procedury obsługi.
  • Nie podlega ograniczaniu częstotliwości (ang. throttling). Pojedyncze wywołanie m.redraw.sync() powoduje natychmiastowe wywołanie m.render() dla każdego korzenia zarejestrowanego za pomocą m.mount() lub m.route().

m.redraw() nie ma żadnego z tych problemów, możesz wywoływać tę funkcję z dowolnego miejsca w kodzie.

Pager
Poprzednia stronafragment(attrs, children)
Następna stronacensor(obiekt, extra)

Opublikowano na licencji MIT.

Copyright (c) 2024 Mithril Contributors

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

Opublikowano na licencji MIT.

Copyright (c) 2024 Mithril Contributors