webForumDet fria alternativet

"Vänta, sökning sker" sida

ASPur ASP

17 svar · 983 visningar · startad av KoTTeN

KoTTeNMedlem sedan sep. 20011 722 inlägg
#1

När en användare kör en lite mer tidskrävande script exempelvis en avancerad sökning i en större database eller att ladda upp en större fil med FSO så visas ju en blank sida sålänge scriptet körs.

Men om man gör en sökning här på wF kommer man till en mellansida med texten "Vänta sökning sker" istället för en blank och tråkig sida. Hur gör man en sådan? Vet ej alls vad det är för teknik man använder men gissar på en blandning av asp och javascript. Ni moderatorer får väl flytta tråden efter behov.

Någon som har ett bra exempel hur man skulle kunna göra detta?

NickemannenMedlem sedan aug. 20003 575 inlägg
#2

Jag tror redan den frågan har varit uppe i ASP & VbScript.

Fast det var nog ett tag sedan, testa att sök lite.

cyprysMedlem sedan dec. 20003 563 inlägg
#3

Tips! ;)

response.buffer = true
response.flush

KoTTeNMedlem sedan sep. 20011 722 inlägg
#4

Problemet är att jag inte alls vet vad jag ska söka på. Har försökt dock utan resultat.

KoTTeNMedlem sedan sep. 20011 722 inlägg
crisse6Medlem sedan dec. 20002 526 inlägg
#6

ar lite intresserad hur du fick ihop din "vanta sida"?

KoTTeNMedlem sedan sep. 20011 722 inlägg
#7

Crisse6: lägger upp den här när jag väl fått ihop den.

Har efter lite testande lagt in demna kod:

response.write "<B>Vänta, sökning pågår.</B>"
Response.Flush

Och detta kommer som sagt fram när först, men lika logiskt blir det kvar när sidan sedan laddats färdigt, vilket jag inte vill. Kan man få det att döljas när sidan väl laddats klart? Har funderat men inte fått fram något bra svar.

Allternatift vore om man skickar användaren vidare till en annan sida där sökresultaten visas. Men då måste man likt väl köra sökningen igen och idéen går förlorad.
Att spara det i separat html fil via FSO och sedan skicka besökaren till denna känns också väldigt onödigt. :q

Sedan en sak till: Finns det något sätt att mäta hastigheten från användaren till servern. Om man laddar upp en fil kan det ju vara användbart att skriva ut hur lång tid det tros ta.

cyprysMedlem sedan dec. 20003 563 inlägg
#8

Hur funkar response.clear?

@ndersMedlem sedan juni 200032 969 inlägg
#9

response.clear tömmer bufferten. Har man kört flush så finns det dock inget där, så det tjänar man inte så mycket på. ;)

PatrikBMedlem sedan mars 20002 836 inlägg
#10

lägg din "vänta text" i en div.
När sidan laddats, i eventet OnLoad för body-taggen, kan du med javascript gömma div-en

cya,
PatrikB

Jesper TMedlem sedan nov. 20017 144 inlägg
#11

PatrikB skrev:

lägg din "vänta text" i en div.
När sidan laddats, i eventet OnLoad för body-taggen, kan du med javascript gömma div-en

cya,
PatrikB

Då är det kanske smart att även köra response.flush innan sökningen exekveras annars så kommer inget att synas förs sökningen är utförd.

PatrikBMedlem sedan mars 20002 836 inlägg
#12

precis

/PatrikB

crisse6Medlem sedan dec. 20002 526 inlägg
#13

men har vi fatt ihop nagot alls har? hur blir den totala koden? :D

m_soderlundMedlem sedan sep. 20026 425 inlägg
#14

Eller:

[red]<%
Response.Addheader "refresh","5;url=default.asp"
Response.Write "En sökning utförs, ni skickas till söksidan om 5 sekunder.."

'här skriver du all kod som har med själva sökningen i databasen att göra
%>[/red]

Ändra 5 mot antalet sekunder du vill ha.

Jesper TMedlem sedan nov. 20017 144 inlägg
#15

Testat m. I.E. 6.0:

<body>
<div id="SearchAlert" style="background-color:white;" >...vänta, sökning pågår.</div>
...
<%
response.flush
  
 'Sök-sql och annat smått och gott,
 'kan simuleras med en for-slinga
[red]  Dim i
  for i = 0 to 7000
        Response.write " "
  next[/red]

%>
...
</body>
<script>document.all["SearchAlert"].style.visibility='hidden';</script>
BoorgMedlem sedan okt. 2004409 inlägg
#16

Jesper T skrev:

Testat m. I.E. 6.0:

<body>
<div id="SearchAlert" style="background-color:white;" >...vänta, sökning pågår.</div>
...
<%
response.flush
  
 'Sök-sql och annat smått och gott,
 'kan simuleras med en for-slinga
[red]  Dim i
  for i = 0 to 7000
        Response.write " "
  next[/red]

%>
...
</body>
<script>document.all["SearchAlert"].style.visibility='hidden';</script>

Jag förstog inte vad man har för nytta av for loopen... Response.flush är väll klar nar sidan är klar buffrad?

Finns det inget sätt att få det så att man visar en bild över hur lång tid det är kvar på laddningen?

Jesper TMedlem sedan nov. 20017 144 inlägg
#17

1. Sidan renderas ut till Response.flush
Sedan så laddas resten in.
Loopen skulle bara simulera att något annat händer i mitt test.

2. Nej.

BTW. Använd document.getElementById istället för document.all

daniel_raMedlem sedan jan. 2002381 inlägg
#18

Använder mig av följande:

<body>
<div id="SearchAlert" style="background-color:white;" >...vänta, sökning pågår.</div>
...
<%
response.flush
  
 'Sök-sql och annat smått och gott,
 'kan simuleras med en for-slinga
  Dim i
  for i = 0 to 7000
        Response.write " "
  next

%>
...
</body>
<script>document.all["SearchAlert"].style.visibility='hidden';</script>

Men diven tar plats. när den döljs blir det ju en tom rad där den visats. Kan man inte lägga diven över det andra som ett lager som sedan döljs så att designen slipper påvekas. Hoppas ni förstår vad jag menar

131 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)