26. juli 2006 - 17:55Der er
17 kommentarer og 1 løsning
Hjælp til progressbar?
Goddag eksperter
Jeg har noget kode som skal lave en søgning ned i en mysql database og jo støre den bliver tager det lidt længere tid om at søge og resultaterne vises, men jeg ville høre om nogen derude kunne hjælpe til lidt kode til hvordan man laver en progressbar som kan køre så længe der ikke er nogle resultater at vise og som stopper når søgningen er færdig?
1) Kommando: lav søgning 2) SQL: nu har jeg læst 10 poster 3) SQL: nu har jeg læst 20 poster 3) SQL: nu har jeg læst 30 poster
HVIS den gjorde det, kunne du godt lave en progress-indikator.. men det gør den ikke.. Med mindre at du laver noget paging, der f.eks. loader 10 poster (måske 50 poster) ad gangen..
han kunne vel lave det så han "forudser" at det vil tage ca 10 sek, så for han sin progressbar til at "surfe" lige så stille hen mod slut, i et tempo som ville betyde at den vil være ved enden efter 10 sek, men den sidste bar vil ikke blive vidst før den er færdig.. så den vil i teorien bare stå og hænge indtil da.!
Fra og med .Net 2.0 har en prograsbar en type. Denne kan bl.a. tage værdien Marquee. Når den har denne, vil din progresbar se lidt ud som den progresbar man f.eks. ser når Windows XP booter. Det er sådan en fyr som bare scroller fra den ene side til den anden.
Den er ideel til at vise at der sker noget uden at man nødvendigvis på forhånd ved hvornår at man er færdig.
Vil det være muligt at starte med at lave et kald der bare f.eks henter ID på de poster man skal bruge, så ved man hvor mange poster der er, og så sætte progressbar op efter det, for så derefter at hente ALT dataen ud?
1) Du ender jo med at foretage søgningen før at du kan aflæse værdien af antal. Og så er det jo lidt ligemeget med en progresbar. En bedre løsning ville være hvis du kunne estimere dig frem til et ca. resultat (uden at gå i databasen).
2) Selv hvis du kunne aflæse antal på forhånd, sådan at du kan initialisere din progressbar på den rigtige måde ... så har du jo stadig problemet med at opdatere progressbaren undervejs. Dette ville kræve at databasen, på en eller anden måde, samarbejder og fortæller at "nu har jeg hentet 100 af rækkerne". Umidelbart ser det ikke ud til at de forskellige datareadere har nogen som helst event af den slags som du kan koble dig ind på.
Jeg kan kun give jer ret, hvis en progressbar skal fungere ordentligt skal man vide hver mange "step man har, og da søgningen kun er 1 step, giver det ingen mening at lave den. Man kunne dog lave et langt step, som er søgningen, og så en masse små step som er indlæsningen af posterne fra datareaderen, men så vil progressbaren, stå stille i noget tid, og til sidst bevæge sig max hurtigt til slut :(
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.