Ich habe eine Funktion, die eine Kommunikation mit einem Server durchführt, um die aktuelle Bildschirmgeometrie usw. zu melden.
%Vor%Ich abonniere diese Funktion für einige Ereignisse in meinem Code wie folgt:
%Vor%Einige dieser Ereignisse werden möglicherweise zu häufig gesendet, um vom Server sinnvoll verarbeitet zu werden, und ich möchte die Anforderungen auf eine vernünftige Rate reduzieren.
Das Beste, was ich mir vorstellen konnte, war so etwas:
%Vor%Gibt es eine prägnantere Methode, dieses Muster zu erfassen, oder ist das der richtige Weg?
Wenn Sie Underscore verwenden, können Sie % co_de verwenden % so:
%Vor%Ansonsten ist es nicht wirklich ein Muster, das Knockout direkt unterstützt. Die Lösung, die Sie gefunden haben, scheint gut genug zu sein, obwohl hier eine Alternative ist:
%Vor%Die obige Antwort ist ziemlich elegant! Ich habe eine Liste, die sortiert werden muss, die Reihenfolge und was dann auf dem Server als Benutzervorliebe gespeichert werden muss. Ich möchte den Server auf 3 verschiedene Eigenschaftenänderungen aktualisieren, aber nicht bei jeder Änderung. so etwas zu tun.
%Vor%Erlaubt es mir, eine Reihe von Eigenschaften mit einer Funktion zu indizieren und dem Benutzer Zeit zu geben, vor dem Aktualisieren des Servers mit dem Klicken aufzuhören.
sehr nett, danke!
Sie brauchen nicht ein großes Code-Segment für eine ordentliche Drosselfunktion. Der Zweck einer Drosselungsfunktion ist es, die Browser-Ressourcen zu reduzieren, und nicht so viel Overhead zu verwenden, dass Sie noch mehr verwenden. Auch meine verschiedenen Anwendungen für Drosselfunktionen erfordern viele verschiedene Umstände für sie. Hier ist meine Liste von Dingen, die eine 'gute' Drosselfunktion benötigt, die diese hat.
Und ich glaube, dass die folgende Drosselfunktion all diese Anforderungen erfüllt.
%Vor%Beispielverwendung:
%Vor%Wenn Sie nur Ereignis-Listener hinzufügen und Ereignis-Listener nicht entfernen müssen, können Sie alternativ die folgende noch einfachere Version verwenden.
%Vor% Standardmäßig drosselt dies die Funktion auf höchstens einen Anruf alle 200 ms. Um das Intervall auf eine andere Anzahl von Millisekunden zu ändern, ändern Sie einfach den Wert von minimumInterval
.
Tags und Links knockout.js