Ich verwende debounce, um ein Feld "Suche bei der Eingabe" zu implementieren.Entprellte Funktionen werden verzögert, aber alle ausgeführt, wenn die Wartezeit abgelaufen ist
Ich lese https://css-tricks.com/debouncing-throttling-explained-examples/ und von dem, was ich verstehen kann die Funktion sollte nur eine begrenzte Anzahl von Zeiten aufgerufen werden.
In meinem Fall sind die Funktionsaufrufe verzögert, aber auf einmal ausgeführt, wenn die Wartezeit-Timer endet:
methods: {
searchOnType: function (currentPage, searchString) {
console.log(`Searching ${searchString}`)
var debounced = throttle(this.getMovies, 4000, {leading: false, trailing: true})
debounced('movies.json', currentPage, searchString)
},
getMovies: function (url, page, query) {
console.log(query)
this.loading = true
resourceService.getMovies(url, page, query).then((result) => {
this.items = result.movies
this.totalMovies = result.total
this.loading = false
})
},
die HTML (es ist Vue.JS)
<input
type="text"
v-model="searchString"
class="form-control input-lg"
placeholder="search movie"
@keydown="searchOnType(currentPage, searchString)"
>
Ja, Sie können, ich kann es nur in der Dokumentation lesen http://vuejs.org/guide/migration.html#debounce-Param-Attribute-for-v -Modell entfernt .. danke! aber deine syntax ist ein bisschen falsch, kannst du das doc überprüfen und korrigieren damit ich √? –
Die Syntax ist zwar in Ordnung. Es kommt darauf an, wie Sie damit umgehen wollen. Ich werde mein Beispiel aktualisieren, um die Argumente zu behandeln. –
Was passierte mit dem, was ich vorher gemacht habe? –