Avatar billede spottie Nybegynder
26. juli 2006 - 17:55 Der 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?

håber nogen kan hjælpe.

vh spottie
Avatar billede thesurfer Nybegynder
26. juli 2006 - 18:03 #1
Det kan ikke lade sig gøre, med mindre at du henter x antal poster ad gangen.

Når den smutter hen efter data, siger den ikke noget før den er tilbage med data (eller ingenting, hvis der ikke er noget)..
Avatar billede thesurfer Nybegynder
26. juli 2006 - 18:05 #2
Med andre ord:

Det sker IKKE sådan her:

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..
Avatar billede mcnovy Nybegynder
26. juli 2006 - 20:59 #3
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.!
Avatar billede mcnovy Nybegynder
26. juli 2006 - 20:59 #4
tiden man ville forudsige skulle jo så bare være noget kryptisk med hvor mange poster er der ialt, osv..
Avatar billede thesurfer Nybegynder
26. juli 2006 - 21:03 #5
Hehe.. Ja, fuske, det kan man også.. :-)
Avatar billede mcnovy Nybegynder
26. juli 2006 - 21:39 #6
hvis du lægger mærke til det, så er det ikke unormalt at bygge en progress bar op på den måde..

men ja.. helt rigigt.. det er noget fusk.. og ikke en holdbar løsning hvis man gerne vil indikere noget!

men engang imellem må man ty til sådanne metoder desværre.!
Avatar billede nielle Nybegynder
26. juli 2006 - 22:02 #7
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.
Avatar billede thesurfer Nybegynder
26. juli 2006 - 22:05 #8
nielle> Jeg hader den "progressbar" (som også bruges ved boot).. Den fortæller mig ikke en sk!d.. :-)
Ja, den arbejder.. jubii.. :-)
Avatar billede nielle Nybegynder
26. juli 2006 - 22:13 #9
Du er velkommen til at hade den alt det du vil. :^)

Vil blot påpege at muligheden faktisk findes, og at det måske simpelthen var sådan noget spottie efterlyste.
Avatar billede thesurfer Nybegynder
26. juli 2006 - 22:20 #10
Ja, det lyder som om det er det han søger (har lige læst spørgsmålet igen)..

Jeg troede bare at han ville have en progressbar, der viste hvor langt den er nået med søgningen (det er normalt meningen med en "progressbar").. :-)
Avatar billede mcgoat Nybegynder
27. juli 2006 - 09:31 #11
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?
Avatar billede nielle Nybegynder
27. juli 2006 - 10:16 #12
Du kan altid starte med at lave en:

SELECT count(*) AS antal ...

- på de data du skal have frem. Dermed får du antallet.
Avatar billede nielle Nybegynder
27. juli 2006 - 10:34 #13
Der er to problemer med dette:

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å.
Avatar billede nielle Nybegynder
27. juli 2006 - 10:35 #14
Punkt 2) er allerede påpeget i 26/07-2006 18:03:52.
Avatar billede mrbonus Novice
27. juli 2006 - 10:43 #15
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 :(
Avatar billede nielle Nybegynder
07. august 2006 - 20:39 #16
Hvad med noget respons?
Avatar billede spottie Nybegynder
19. maj 2007 - 07:50 #17
lukker
Avatar billede thesurfer Nybegynder
21. maj 2007 - 09:26 #18
spottie> You suck monkey-butt :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester