Debounce for livesøk
Begrens raske inndata med debounce.
Debounce for livesøk er en gratis leksjon i SwiftUI Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i SwiftUI Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i SwiftUI Academy inneholder totalt 4 leksjoner.
Problemet med live-søk
Når en bruker skriver inn et søk, vil et nettverkskall for hvert tastetrykk oversvømme serveren med unødvendige forespørsler.
Vent på en pause
Live-søk føles best når du venter til brukeren tar en pause i skrivingen, og deretter sender én forespørsel for søket slik det ble stående.
Her kommer debounce
debounce-operatoren sender bare ut en verdi etter en periode uten nye verdier, og ignorerer raske utbrudd før det.
searchText
.debounce(for: .milliseconds(300),
scheduler: RunLoop.main)Velge forsinkelsen
En forsinkelse på rundt 300 millisekunder føles vanligvis responsiv: Lang nok til å hoppe over skriving midt i et ord, men kort nok til å føles umiddelbar. ⏱️
Scheduler betyr noe
scheduler avgjør hvilken kø som leverer den debounced-verdien, ofte hovedkjøringen ved UI-oppdateringer.
scheduler: RunLoop.maindebounce kontra throttle
Mens debounce venter på stillhet, sender throttle ut verdier maksimalt én gang per intervall, uavhengig av pauser.
searchText.throttle(for: .seconds(1),
scheduler: RunLoop.main,
latest: true)Hopp over tomme søk
Kombiner debounce med filter for å hoppe over tomme strenger, slik at tømming av feltet ikke utløser et søk.
.filter { !$0.isEmpty }Unngå gjentatte søk
Legg til removeDuplicates, slik at det ikke kjøres et identisk søk to ganger hvis brukeren skriver inn det samme søket på nytt etter en pause.
.removeDuplicates()En søkepipeline
Sammen danner disse operatorene en ryddig søke-pipeline som bare utløses av meningsfulle søk som har falt til ro.
text
.debounce(for: .milliseconds(300),
scheduler: RunLoop.main)
.removeDuplicates()Avbryte gammelt arbeid
Bruk Combine sammen med switchToLatest eller flatMap for å avbryte en pågående forespørsel når nye inndata kommer.
Smidigere og rimeligere
Gevinsten er færre forespørsler, lavere kostnader og et søkefelt som føles responsivt i stedet for hektisk. 🚀
Rask sjekk
Du vil at et søk bare skal utløses etter at brukeren har sluttet å skrive i 300 ms. Hvilken operator passer best?
Oppsummering: Rolig live-søk
Du bygget en søkeflyt der debounce venter på en pause, og deretter reduserer filter og removeDuplicates unødvendig arbeid. 🎯
Lær deg Swift med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Debounce for livesøk» gratis?
Ja – hele teksten i «Debounce for livesøk» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av SwiftUI Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i SwiftUI Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Debounce for livesøk»?
Begrens raske inndata med debounce. Du øver på SwiftUI Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med SwiftUI Academy?
Ingen tidligere erfaring er nødvendig. SwiftUI Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.
Hvor lang tid tar leksjonen «Debounce for livesøk»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne SwiftUI Academy-leksjonen?
Ja. Alle SwiftUI Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Publishers og subscribers
- Transformere med map og filter
- Debounce for livesøk
- Koble Combine til SwiftUI