2016-08-09 91 views
0

Korrigieren Sie mich, wenn ich falsch liege, aber ich denke, es gibt einen Scheduler, der standardmäßig auf einen Ticker von 5ms für die Bindungen des Viewmodels gesetzt ist.Wie deaktiviere ich den Scheduler der Bindung des Viewmodels in Sencha ExtJS v6.0.2?

Mit anderen Worten, wenn ein set Befehl ausgeführt wird, wird der Wert nicht sofort festgelegt, aber es gibt eine kleine Verzögerung.

Wir befürchten, dass diese asynchrone/parallele Programmierung einige Instabilitätsprobleme und Rennbedingungen in unserer Anwendung verursacht.

Gibt es eine Möglichkeit, den Scheduler global für alle Ansichtsmodelle und alle Bindungen unserer Anwendung vollständig zu deaktivieren?

Ich denke, wir suchen etwas Ähnliches der Ausführung der notify Methode sofort.

Wir verstehen, dass dies die Anwendung ein wenig "schwerer" und langsamer machen könnte, aber das ist momentan nicht die Hauptsorge.

+0

Sie verwenden besser nicht ['viewModel'] (http://docs.sencha.com/extjs/6.0.2-classic/guides/application_architecture/view_model_internals.html#application_architecture_view_model_internals_-_scheduling_and_dependencies) s in diesem Fall ... –

+0

Wir sind nicht in einer Position, dass dies eine Option ist. Das Projekt ist schon ziemlich groß und wir können nicht auf Listener-Events für alles zurückgreifen. Wie erwartet, traten die Probleme auf, als die Komplexität erhöht wurde. –

+0

Aus einer gelöschten Antwort muss ich sagen, dass das Setzen des Timers des Schedulers auf Null dazu führt, dass die Anwendung beim Initialisieren abstürzt. Wenn der Timer auf das Minimum von 1 Millisekunde eingestellt wird, funktioniert alles wieder (Standard ist 5 ms) –

Antwort

0

Was Sie tun können, ist Ext.util.Scheduler zu erweitern, den Zeitplan zu überschreiben. Überschreiben Sie dann Ext.app.ViewModel, um eine eigene ViewModel-Klasse zu definieren, die Ihren Scheduler-Code außer Kraft setzt. Und wenn Sie eine Instanz für viewmodel erstellen, verwenden Sie einfach Ihre Klasse als inbuild-Klasse.