|
| "Jeg søger" skilt Fra : Kurt G |
Dato : 15-05-07 12:44 |
|
Jeg har til databaseopslag lavet to sider, een med forespørgselen og en
anden, der viser resultatet.
Når der spørges på 'alt' tager det nogle sekunder før resultatet vises og i
den tid vises forespørgselssiden.
Kan man ikke lave det sådan, at der på siden vises en tekst, der fortæller
brugeren, at systemet ikke er gået i stå?
Eller kan man lave det sådan, at der skiftes til svarsiden straks, altså
inden søgningen i databasen begynder.
Mvh Kurt
| |
Christian Møller Nie~ (15-05-2007)
| Kommentar Fra : Christian Møller Nie~ |
Dato : 15-05-07 20:11 |
|
On 15 Maj, 13:44, "Kurt G" <kur...@guldbaek.net> wrote:
> Jeg har til databaseopslag lavet to sider, een med forespørgselen og en
> anden, der viser resultatet.
>
> Når der spørges på 'alt' tager det nogle sekunder før resultatet vises og i
> den tid vises forespørgselssiden.
> Kan man ikke lave det sådan, at der på siden vises en tekst, der fortæller
> brugeren, at systemet ikke er gået i stå?
Prøv denne url
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=6333&lngWId=4
Chr.
| |
Kurt G (16-05-2007)
| Kommentar Fra : Kurt G |
Dato : 16-05-07 08:12 |
| | |
Jørn Andersen (16-05-2007)
| Kommentar Fra : Jørn Andersen |
Dato : 16-05-07 16:57 |
|
On 15 May 2007 12:11:18 -0700, Christian Møller Nielsen
<cmnielsen05@gmail.com> wrote:
> http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=6333&lngWId=4
Vlær lige opmærksom på, at der er en syntaks-fejl i style-angivelsen:
#cache {
position:absolute; left=10; top:10px; z-index:10; visibility:hidden;
}
(fejl ved "left")
Skal være:
#cache {
position:absolute;
left:10px;
top:10px;
z-index:10;
visibility:hidden;
}
Mvh. Jørn
--
Jørn Andersen,
Brønshøj
| |
Christian Møller Nie~ (15-05-2007)
| Kommentar Fra : Christian Møller Nie~ |
Dato : 15-05-07 20:22 |
| | |
Christian Møller Nie~ (16-05-2007)
| Kommentar Fra : Christian Møller Nie~ |
Dato : 16-05-07 10:39 |
| | |
Jørn Andersen (16-05-2007)
| Kommentar Fra : Jørn Andersen |
Dato : 16-05-07 16:19 |
|
On Tue, 15 May 2007 13:44:04 +0200, "Kurt G" <kurt_g@guldbaek.net>
wrote:
>Jeg har til databaseopslag lavet to sider, een med forespørgselen og en
>anden, der viser resultatet.
>
>Når der spørges på 'alt' tager det nogle sekunder før resultatet vises og i
>den tid vises forespørgselssiden.
>Kan man ikke lave det sådan, at der på siden vises en tekst, der fortæller
>brugeren, at systemet ikke er gået i stå?
>Eller kan man lave det sådan, at der skiftes til svarsiden straks, altså
>inden søgningen i databasen begynder.
Jeg ville først finde ud af, hvad ventetiden skyldes.
Hvis det er fordi det tager lang tid at søge i databasen, så prøv at
kigge på, om ikke din søgning kan optimeres og på om databasen er
fornuftigt indekseret.
Hvis det er fordi der simpelthen er mange resultater, kan du bruge
Response.Flush undervejs, så du fx starter med at skrive toppen af siden
ud og herefter skriver ud fx for hver 100 poster.
Se fx:
<url: http://www.w3schools.com/asp/showasp.asp?filename=demo_buffer>
Derudover kan du så evt. kombinere med JScript-løsningen.
Good luck!
--
Jørn Andersen,
Brønshøj
| |
Kurt G (16-05-2007)
| Kommentar Fra : Kurt G |
Dato : 16-05-07 16:57 |
|
> Jeg ville først finde ud af, hvad ventetiden skyldes.
>
> Hvis det er fordi det tager lang tid at søge i databasen, så prøv at
> kigge på, om ikke din søgning kan optimeres og på om databasen er
> fornuftigt indekseret.
Det er søgetiden i databasen.
Der går nogle sekunder, inden den resultatsiden dukker op. Derefter går det
hurtigt nok, så hvis der blot skiftes side med det samme, så man kan se, at
der sker noget, er det OK.
> Hvis det er fordi der simpelthen er mange resultater, kan du bruge
> Response.Flush undervejs, så du fx starter med at skrive toppen af siden
> ud og herefter skriver ud fx for hver 100 poster.
> Se fx:
> <url: http://www.w3schools.com/asp/showasp.asp?filename=demo_buffer>
Der kan være ret mange svar; som det er i øjeblikket er der omkring ved
3.000 hvis der bedes om alt i databasen.
Men jeg skal nok kikke lidt på indekseringen, det har jeg ikke gjort meget
ud af.
> Derudover kan du så evt. kombinere med JScript-løsningen.
>
> Good luck!
>
> --
> Jørn Andersen,
> Brønshøj
Tak!
Kurt
| |
Jørn Andersen (16-05-2007)
| Kommentar Fra : Jørn Andersen |
Dato : 16-05-07 17:47 |
|
On Wed, 16 May 2007 17:56:38 +0200, "Kurt G" <kurt_g@guldbaek.net>
wrote:
>> Jeg ville først finde ud af, hvad ventetiden skyldes.
>>
>> Hvis det er fordi det tager lang tid at søge i databasen, så prøv at
>> kigge på, om ikke din søgning kan optimeres og på om databasen er
>> fornuftigt indekseret.
>
>Det er søgetiden i databasen.
>Der går nogle sekunder, inden den resultatsiden dukker op. Derefter går det
>hurtigt nok, så hvis der blot skiftes side med det samme, så man kan se, at
>der sker noget, er det OK.
Du kan ikke konkludere ud fra ovenstående, at det er søgetiden i
databasen.
Formentlig har du
Response.Buffer = True
et sted i starten af dit dokument.
Det betyder, at al output først bliver kørt ind i en buffer, inden det
bliver sendt afsted til klienten - dvs. du ser det først når søgning og
udskriftsformattering er færdig.
Hvis du - for eksperimentets skyld - sætter:
Response.Buffer = False
- og så indsætter nogle
Response.Write "Søger 1<br>"
Response.Write "Søger 2<br>"
osv.
forskellige steder i dit script, kan du få en fornemmelse for, hvad der
tager tid.
Sæt fx den første i starten af scriptet, den næste lige før
databaseforespørgslen, og den tredje lige efter databaseforspørgslen.
Jeg har lige prøvet at teste på en bred søgning i et af mine egne
scripts, og her tager det 1-2 sekunder, før den første dukker op.
(Det vil jeg mene er den tid der går fra siden sendes fra klienten og
indtil serveren har løbet scriptet igenne for syntaks-fejl.)
Herefter kommer de andre næsten samtidigt, mens der sagtens kan gå 5-6
sek. eller mere, inden resten af siden bliver vist.
Testet med hhv 2.000 og 9.500 poster på en gammel 500 MHz Pentium 3.
Den sidste tid vil givetvis være mindre på en hurtigere klient, da en
betydelig del af tiden bruges på at browseren skal beslutte sig for,
hvordan den vil vise siden (tabel-struktur).
Mvh. Jørn
--
Jørn Andersen,
Brønshøj
| |
Kurt G (17-05-2007)
| Kommentar Fra : Kurt G |
Dato : 17-05-07 22:22 |
|
Klip...
> Du kan ikke konkludere ud fra ovenstående, at det er søgetiden i
> databasen.
> Formentlig har du
> Response.Buffer = True
> et sted i starten af dit dokument.
Nej, det har jeg faktisk ikke.
Klip....
> Herefter kommer de andre næsten samtidigt, mens der sagtens kan gå 5-6
> sek. eller mere, inden resten af siden bliver vist.
> Testet med hhv 2.000 og 9.500 poster på en gammel 500 MHz Pentium 3.
>
> Den sidste tid vil givetvis være mindre på en hurtigere klient, da en
> betydelig del af tiden bruges på at browseren skal beslutte sig for,
> hvordan den vil vise siden (tabel-struktur).
> Mvh. Jørn
Jeg har nu prøvet at indsætte Response.buffer = True med følgende resultat
ved bred søgning, der gav 3086 resultater:
Søgning på egen PC: 25 sek for første resultat, færdig efter 1-2 sek
mere
Hjemmesiden på nettet: 10 sek for første resultat, færdig efter 45sek.
Sætter jeg Response.buffer = false, ser det sådan ud:
Søgning på egen PC: 1 sek for første resultat, færdig efter 45 sek
Hjemmesiden på nettet: 10 sek for første resultat, færdig efter 45sek
(som før)
Indsætter jeg
If (I MOD 50) = 0 Then
Response.flush 'For at vise resultater hurtigere
End If
i søgeloop'en, får jeg:
Søgning på egen PC: 7 sek for første resultat, færdig efter 25sek
Hjemmesiden på nettet: 1 sek for første resultat, færdig efter 85sek
Dette siger mig, at jeg skal anvende sidstnævnte metode, måske med et andet
tal end 'MOD 50', selv om det kan være svært at gennemskue systematikken i
resultaterne.
Mvh Kurt
| |
Jørn Andersen (18-05-2007)
| Kommentar Fra : Jørn Andersen |
Dato : 18-05-07 09:48 |
|
On Thu, 17 May 2007 23:21:49 +0200, "Kurt G" <kurt_g@guldbaek.net>
wrote:
>Indsætter jeg
>If (I MOD 50) = 0 Then
> Response.flush 'For at vise resultater hurtigere
>End If
>i søgeloop'en, får jeg:
>Søgning på egen PC: 7 sek for første resultat, færdig efter 25sek
>Hjemmesiden på nettet: 1 sek for første resultat, færdig efter 85sek
>
>Dette siger mig, at jeg skal anvende sidstnævnte metode, måske med et andet
>tal end 'MOD 50', selv om det kan være svært at gennemskue systematikken i
>resultaterne.
Du kan muligvis få det noget (overskift etc.) på siden hurtigere, hvis
du også indsætter Response.Flush før det første resultat.
Good luck!
--
Jørn Andersen,
Brønshøj
| |
Kurt G (18-05-2007)
| Kommentar Fra : Kurt G |
Dato : 18-05-07 10:11 |
|
> Du kan muligvis få det noget (overskift etc.) på siden hurtigere, hvis
> du også indsætter Response.Flush før det første resultat.
>
> Good luck!
>
> --
> Jørn Andersen,
> Brønshøj
Tak for hjælpen til jer alle.
Kurt
| |
Kurt G (16-05-2007)
| Kommentar Fra : Kurt G |
Dato : 16-05-07 17:07 |
|
"Jørn Andersen" <jorn@jorna.dk> skrev i en meddelelse
news:lq7m43h9d8ummhg0jsk87i4tvfb2625s5o@4ax.com...
> Response.Flush undervejs, så du fx starter med at skrive toppen af siden
> ud og herefter skriver ud fx for hver 100 poster.
...........
> Jørn Andersen,
> Brønshøj
Det klarede sagen. Men jeg skal nu kikkke på index alligevel!
/Kurt
| |
|
|