SwiftUI Academy · leksjon

Debounce for livesøk

Begrens raske inndata med debounce.

Leksjon 3 av 413 trinn

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.main

debounce 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. 🎯

Gratis å komme i gang

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

  1. Publishers og subscribers
  2. Transformere med map og filter
  3. Debounce for livesøk
  4. Koble Combine til SwiftUI
← Tilbake til SwiftUI Academy