22. august 2003 - 12:10Der er
127 kommentarer og 1 løsning
Tidsperiode på feltværdi i database
Jeg har et "true/false" felt i en access database. Default står den på "false".
Min plan er så, at jeg skriver feltet til "true" med ASP, hvorefter feltet skal skifte til "false" igen efter 1 sekund. Jeg har fundet ud af, at databasen kræves åben (http://www.eksperten.dk/spm/390935), hvis det laves i en formular i ACCESS, men jeg vil helst ikke have databasen skal være åben.
Hvordan kan jeg få feltet til at skifte til "false" efter 1 sekund ved brug af ASP?
Du kan vle bruge SetTimeOut-proceduren (jeg tror nok, det er det den hedder) til at aktivere en procedure efter det ønskede tidsrum, og derefter rette værdien i det ønskede felt
Jeg kan se at scriptet skal skrives en hel del om. Det som scriptet gør nu, er at tælle ned, og komme med en promtp "Time Out" når tiden er = 0. Findes der nogle scripts som ligger nærmere mit behov, eller skal jeg til at skrive scriptet lidt om? Jeg er sq ikke særlig ferm til avanceret VBScript.
Nu har jeg tænkt mere over det. Der er jo et lille problem, for hvad skal der ske, mens der ventes, og hvem er det, der skal vente? Er det denne situation: 1. Brugeren anmoder om en asp-side. 2. Serveren behandler side: a) Feltet sættes til true. severen venter 1 sek (og hvad skal der ske her, mens der ventes??) b) Feltet sættes til false siden behandles færdig og sendes til brugeren.
eller er det dette
1. Brugeren beder om en asp-side. 2. Serveren behandler den a) feltet sættes til true siden sendes til brugeren efter 1 sek vil et script hos brugeren bede om en ny side, uanset, hvad brugeren gør. 3. Serveren behandler den nye side. a) feltet sættes til false siden sendess til brugeren
Jeg vil tro at det er den første procedure, som vil blive bedst. Så vil der ikke opstå komplikationer, hvis nu brugeren går andre steder hen i mellemtiden... Brugeren må vente til tiden er gået, før han kan foretage sig andet.
Kan man eventuelt vise et billede (en htm-side) i mellemtiden? eller kan man eventuelt skrive "Vent mens nulstilling foretages..."
Faktisk vil jeg gerne have tiden stillet op til 30 sekunder... men det er vel underordnet?
Jeg ved ikke om jeg har forstået scriptet 100% korrekt, men kunne man gøre noget lignende:
<% '** her skriver jeg til databasen, at feltet skal skifte til "True" hvorefter timerscriptet køres:
Sub HandleTime if hr=0 and min=0 and sec=0 then EndTime elseif min>=0 and sec>0 then sec=sec-1 status=hr & ":" & min & ":" & sec '**Whenever the second changes the Status of the window has to be changed. intTimerID=setTimeOut("HandleTime",950, "VBScript") '**setTimeOut function returns a unique timer id that is used to keep track of the time. '**When the time is up the timer id is destroyed automatically. elseif min>0 and sec=0 then min=min-1 sec=59 status=hr & ":" & min & ":" & sec intTimerID=setTimeOut("HandleTime",2850, "VBScript") elseif hr>=0 and min=0 then hr=hr-1 min=59 sec=59 status=hr & ":" & min & ":" & sec intTimerID=setTimeOut("HandleTime",2850, "VBScript") end if End Sub
Sub EndTime '**her skriver jeg at databasen skal ændres tilbage til false End Sub
Hvad skal du egentlig bruge pausen på på fra 1 til 30 sekunder til?
Funktionen SetTimeOut virker ikke på server-side.
Jeg kommer her med et andet forslag:
Man henter først en html-side, som fortæller, at om lidt vil asp-siden blive hentet. Når man lige har haft tid til at læse dette (3 sek f.eks), hentes asp-siden. Sådan kunne html-siden laves: <html> <script language=VBscript> Option Explicit dim skift sub hent if skift then self.location="ASPsiden.asp" end if skift=true SetTimeOut "hent",3000 end sub </script> <body onLoad="hent"> <h1>Vent lidt</h1> Om 3 sekunder hentes asp-siden<p> Den vil sætte et felt i databasen til true,<br> den holder pause i 5 sek<br> så sættes feltet igen til false,<br> og html-delen sendes til brugeren. </body> </html>
ASP-siden kunne laves således:
<% Sub Delay(DelaySeconds) dim SecCount, Sec1, Sec2 SecCount = 0 Sec2 = 0 While SecCount < DelaySeconds + 1 Sec1 = Second(Time()) If Sec1 <> Sec2 Then Sec2 = Second(Time()) SecCount = SecCount + 1 End If Wend End Sub
'Åben databasen og sæt feltet til true 'Luk databasen
Delay(5) 'Nu holdes der pause i 5 sek
'Åben databasen og sæt feltet til falsk 'Luk databasen %> <html> .... </html>
Det vil belaste serveren at holde pause (den kører i en lykke og måler til stadighed tiden). Hvis det er et problem, kunne man sende en side ud til klienten istedetfor, og så lade klienten holde pausen, mens serveren gjorde nyttige ting. Når pausen var slut sendte klienten besked til serveren om at sætte databasefeltet til false igen. Ulempen ved dette er, at klienten måske bliver afbrudt, og så bliver database-feltet aldrig sat til false igen.
Det er fordi jeg er igang med at lave den ene del af et system, - siden med ASP og design. Den anden side leveres af en kunde. I den anden ende ligger et system, hvor nulstilling kan foretages, når systemet opdager at feltet står til true i nogle sekunder.
Jeg ved egentligt ikke præcist hvilket system der ligger i den anden ende, men det registrerer energiforbrug i form af varmt vand, koldt vand og EL. De data kommer så ned i databasen, og dem skriver jeg så ud på et lille lokalt web, så folk kan holde øje med forbruget.
Løkken: Når jeg taler om løkken,så mener jeg while-løkken i proceduren Delay(DelaySeconds) i asp-siden. Det er her severen vil stå at køre mens tiden går (5 sek, eller hvad det nu måtte være). Men det gør vel egentlig ikke noget. Serveren blive jo ikke hængende her i 5 sek, men vil betjene andre ind i mellem. Hvis du vil have pausen til at være hos klienten, så skal klienten først starte en side, som sætter database-feltet til true og lukker databasen. Klienten får så en side i hovedet, som 5 sek (det klares så med enten delay-proceduren placeret her, eller med settimeout-metoden) efter kalder en ny asp-side, der sætter database-feltet til false igen. Ulempen her er, at brugerens maskine bliver slukket, og så bliver database-feltet aldrig sat til false.
Hmmm... det kunne nu være smart nok. Selvom det nok er træls for brugeren at få en side smidt i hovedet som kun tager tid, så kunne man jeg jo måske smede et stykke kode sammen, som laver en nedtællingseffekt. Måske i javascript, - f.eks.: 20, 19, 18, 17, ... o.s.v. alt efter hvor lang tid der skal gå. Tester det lige af i aften.
Men du skal lige høre hos de andre der arbejder på projektet, om det gør noget, hvis database-feltet aldrig bliver sat tilbage til false. Brugeren kan jo finde på at slukke for sin maskine.
Men hvis det ikke gør noget så er da let at lave en nedtællingseffekt.
Kan man ikke bare skrive "Advarsel, Sluk ikke for maskinen før tiden er udløbet"? OK, jeg må lige forhøre mig.
Hvis nu jeg i stedet benyttede mig af denne procedure: 1. Brugeren beder om en asp-side. 2. Serveren behandler den a) feltet sættes til true siden sendes til brugeren efter 1 sek vil et script hos brugeren bede om en ny side, uanset, hvad brugeren gør. 3. Serveren behandler den nye side. a) feltet sættes til false siden sendess til brugeren
Så er jeg udenom problemet, med hvis brugeren slukker maskinen - er jeg ikke?
Jo detmed advarslen er ok, med mindre det er fatalt, hvis databsen ikke bliver opdateret. Hvis brugeren slukker for maskinen bliver der aldrig startet et script, der kan bede om en ny side. Det er der ikke noget der kan modvirke. Men gør det egentlig noget om serveren holder pausen?
Jo, brugeren vil næppe lukke, hvis hun kan se, der sker noget på skærmen, men man kan jo kludre (jeg har da ved en fejltagelse kommet til at slukke for, da jeg ville tænde lyset). Hvis fejl kan ske, vil de nok ske på et tidspunkt. Hvis det er fatalt, at brugeren lukker maskinen, så er man nødt til at sørge for, at det er serveren, der holder pausen.
Ja, men jeg ved jo ikke hvor vigtigt det er altid at få sat dadatbase-feltet tilbage til false. Jeg tror jeg vil anbefale, at serveren venter. Formentlig er det jo ikke ret mange brugere der er tale om, så det skulle nok fungere. Og så bygger systemet ikke på, om brugeren opfører sig manerligt.
OK, der er max 6 klienter på systemet samtidigt. Så vidt jeg har forstået det, så er der tale om skoleklasser, opdelt i grupper, som skal foretage nogle forsøg med energiforbrug. Det er nok bedst at lave det på den måde som er sikrest...
1. Brugeren anmoder om en asp-side. 2. Serveren behandler side: a) Feltet sættes til true. severen venter 1 sek (og hvad skal der ske her, mens der ventes??) b) Feltet sættes til false siden behandles færdig og sendes til brugeren.
Denne metode anvender jeg så. Det jeg nødagtigt er i tvivl om nu, er bare det med hvordan jeg får serveren til at vente i x antal sekunder, mens en tæller vil tælle nedad på siden, som brugeren kigger på...
Du kunne arbejde med frames. Så kunne du blot bede om at få udskiftet en af rammerne med asp-siden. Mens der ventes kan en af de andre rammer vise nedtælling og ting og sager.
Jo, man kan lade settimeout styre nedtællingsuret i en ramme, mens der ventes på at asp-siden hentes ind i en anden ramme. Har du tænkt dig en løsning med rammer?
Her er et eksempel på en side, hvor en tæller begynder at tælle ned fra 5 til 0. Når man starter kunne man samtidig bede om at få en anden ramme udskiftet med asp-siden. ASP-siden skulle så dukke op nogenlunde samtidig med at nedtællingen var færdig, men der kan selvfølgelig være forsinkelser på nettet.
<html> <script> var N=5 function FFF(){ alert( "Nu starter FFF") } function count() { if (N==0){ FFF() }else{ tmp=setTimeout("count()",1000); document.getElementById('counter').innerText = N; N=N-1 } } </script> <body> <input type=button value=start onClick="count()"> <p> <div id="counter"></div> </body> </html>
Hmm... jeg havde ikke tænkt mig en løsning med rammer. Hvordan mener du helt præcist forløbet kommer til at se ud på brugersiden med rammer?
Hvad laver <input type=button value=start onClick="count()">?
Jeg havde forestillet mig: 1) Man trykker på en knap i en form 2) Der køres en asp-script, som sætter feltet til "true" lign rs.update 3) Brugeren ser en nedtælling 4) Efter nedtællingen aktiveres et asp-script, som sætter feltet til "false" 5) Med en redirect kommer brugeren til en startside
Det punkt 3 og 4 jeg er i tvivl om... hvordan det scriptes...
<input type....>: Den satte jeg på for at teste. Trykker man på knappen starter nedtællingen. Grunden til at jeg foreslog rammer er, at i det øjeblik hvor brugeren trykker på knappen i formen, så man brugerens side mister evnen til at styre nedtællingen. Nu har man jo bedt om at få en ny side. Derfor skal der være en ramme tilbage, som hele tiden har kontrollen. Denne side starter med at bede om asp-siden. Den tæller ned, og den aktivere igen en asp-side, som sætter feltet til false.
Jamen er det ikke meningen at brugeren ikke har mulighed for at styre nedtællingen? Jeg havde forestillet mig at brugeren bare fik en side med et nedtællingsur smidt i hovedet, uden mulighed for at gøre noget....
Jeg tror vi taler forbi hinanden. Hvis det kører uden rammer og brugeren trykker på en knap, som får en asp-side til at køre, så vil brugerens side ikke kunne lave nogen form for nedtælling. Den stopper, fordi der er bedt om en ny side. Hvis man bygger det op med rammer, så er der hele tiden en side hos brugeren, der kan styre. Det er ikke brugeren, der styrer, men siden, der tæller ned. Og det er denne side, der når nedtællingen er slut aktiverer asp-siden, som sætter feltet til false.
Jo, det var da en god ide. Så først 1 side med en knap. Denne knap henter asp-siden, som sætter feltet til true. siden kommer ned og en tæller starter. Når den slutter hentes asp-siden, der sætter feltet til false og redirecter til et eller andet.
Og den html-side, jeg sendte for lidt siden kan bruges som et udgangspunkt for tælle-ned siden.
Det består altså af 3 dokumenter: 1) form.htm (hvor knappen er) 2) taeller_stop.asp (som viser en tæller efter at feltet er sat til "true") 3) taeller_stop.asp (som sætter feltet til "false" og redirecter)
Det er dokument 2 jeg er i tvivl om. Hvordan får jeg lavet tælleren? Hvordan ved serveren når der er gået x antal sekunder? Hvordan ved serveren, at efter der er gået x antal sekunder, så skal dokument 3 hentes?
Jo. det vil jeg tro du også kunne gøre. jeg har ikke prøvet det.
Men her er i hvert fald noget, som kunne være udgangspunkt for taeller_start.asp. Der bliver talt ned fra 8 til 0.
<html> <script> var N=8 function FFF(){ alert( "Nu hentes taeller_stop.asp") //skriv her den kode som henter taeller_stop.asp //og fjern alert-sætningen } function count() { if (N==0){ FFF() }else{ tmp=setTimeout("count()",1000); document.getElementById('counter').innerText = N; N=N-1 } } </script> <body onLoad="count()"> <h1>Dette er taeller_start.asp</h1> <h1>Når dette vises har serveren sat database-feltet til true</h1> <h1>Når tælleren stopper hentes taeller_stop.asp</h1> <div id="counter"></div> </body> </html>
Den løsning, vi nu har valgt sikrer altså ikke imod at brugeren slukker for sin maskine, og så bliver database-feltet ikke ændret tilbage til false. Sådan som det nu kører er der ikke ventetid hos serveren.
ja, men det var derfor jeg begyndte at tale om frames. Hvis brugeren beder om asp-siden, der sætter database-feltet til false, så er der ikke noget der kan tælle hos brugeren før serveren har sendt noget tilbage. Og hvis der så går 10 sek så har brugeren intet at kigge på, der tæller ned. Men hvis der er en ramme tilbage, så er der mulighed for at skabe tælling hos brugeren, mens der ventes på at serveren bliver færdig.
den kunne godt åbne et sådant vindue, men den kunne jo lige så godt vise en tælle proces. du kunne også vise en alert-box. Pointen er, at der skal være noget hos brugeren, der kan gøre noget. Hvis der ikke var rammer, men kun en enlig side, så er det ikke til at styre hvad der skal vises, indtil den nye side er loadet.
Hvis du f.eks. laver en side med 2 rammer. Så kan du lade f.eks. den venstre indeholde knap og info om aktivitet på server. Den højre kommer fra asp-siderne. Når man trykker på knappen beder man man så om at få den anden ramme udskiftet med den asp-side på serveren, der skal gøre database-tingene. Samtidig vil den venstre side starte en tæller, eller vise en meddelelse i en box, om at serveren arbejder. Efter nogen tid (det er den tid serveren skal holde pause), vil den højre ramme være udskiftet med asp-sidens inhold.
ramme 1: den venstre side, ramme 2: den højre side. 1. Ramme 1 har en knap. Når man trykker bliver den højre ramme udskiftet med asp-siden (den side, der laver arbejdet med databasen, og hvor det tager tid at levere siden). Så der går måske 5 sek eller mere før der sker noget. 2. I ventetiden kan ramme 1 så f.eks. tælle ned. Når de 5 sekunder er gået kommer asp-siden så frem i højre ramme, og så har serveren gjort hvad den skulle. 3. På højre ramme står nu en besked til brugeren om hvad der videre skal ske.
Ramme 1 kunne f.eks. være så lille at man kun kan se en tæller og en knap.
Jeg vil lave nogle forsøg iaften. Nu er jeg jo blevet "grebet" af det her.
Så nu er jeg på igen, og jeg har lavet et par forsøg. Det viser sig, at man godt kan få en side til at være aktiv og vise en tæller, også selv om man er ved at hente en asp-side. Du kan se det i funktion ved at besøge følgende sted: http://dlg.ghg.dk/dlg-web/test3.asp Når du trykker på den knap, der viser sig vil en tæller begynde at tælle ned (10 sek). Mens dette sker er serveren igang med sine ting. Det tager også 10 sek, men det er serveren der agerer selv. Derfor: Lav kun 1 side, ikke noget med rammer. Serveren sørger selv for det hele og klientens side er pæn og nydelig med en tæller, mens der tælles ned.
Her er koden til siden test3.asp: </html> <html> <script> var N=10 function count() { if (N==0){ FFF() }else{ tmp=setTimeout("count()",1000); document.getElementById('counter').innerText = N; N=N-1 } } function Hent(){ self.location="http://dlg.ghg.dk/dlg-web/test5.asp" count() } </script> <body> <input type=button value="tryk her" onClick="Hent()"><p>
Jeg har prøvet at have 3 browsere igang med siden test3.asp hentet ind. Jeg trykkede på de 3 knapper med nogle sekunders mellemrum, og serveren reagerede som den skulle. Det spiller altså ikke nogen rolle, om man holder pause på serveren.
har du prøvet at klikke på http://dlg.ghg.dk/dlg-web/test3.asp test5.asp, er den side der hentes. Det er den, der har en tidsforsinkelse på serveren på 10 sek (den er i øvrigt nu rettet og hedder test6.asp). Den indeholder netop delay-funktionen fra tidligere.
<% Sub Delay(DelaySeconds) dim SecCount, Sec1, Sec2 SecCount = 0 Sec2 = 0 While SecCount < DelaySeconds + 1 Sec1 = Second(Time()) If Sec1 <> Sec2 Then Sec2 = Second(Time()) SecCount = SecCount + 1 End If Wend End Sub
'Åben databasen og sæt feltet til true 'Luk databasen
Delay(5) 'Nu holdes der pause i 5 sek
'Åben databasen og sæt feltet til falsk 'Luk databasen %> <html> .... </html>
Hmm... det fungerer fint, indtil den har talt ned til 0, - så forsvinder siden - og bliver helt blank. Måske skal der en redirect i bunden af delay-siden?
Du skal sørge for at sende noget html-kode ud til brugeren. Det kunne være noget redirect, men det kunne også være siden med delay, der endte med en html-side.
jeg lagt en redirect på, så nu går det som smurt, bortset fra at ... jeg ikke rigtigt kan få det tilpasset til 30 sekunder. Skal jeg ikke ændre i begge scripts sådan her:
Delay(30)
og
var N=30 function count() { if (N==0){ FFF() }else{ tmp=setTimeout("count()",3000); document.getElementById('counter').innerText = N; N=N-1 } } function Hent(){ self.location="delay.asp" count() }
var N=30 function count() { if (N==0){ FFF() }else{ tmp=setTimeout("count()",1000); document.getElementById('counter').innerText = N; N=N-1 } } function Hent(){ self.location="delay.asp" count() }
Men der kommer en syntaxfejl, hver gang jeg når "0"... hvordan har jeg egentligt nogen mulighed for at checke at feltet rent faktisk skifter mellem true og fals?
Med den ændring du har lavet ovenfor bruger den 90 sek på at tælle ned. settimeout skal have 1000 som parameter. N=30 øverst, betyder den tæller ned fra 30 og det tager 30 sek. På server siden er der et kald til delay-funktionen. Det skal være med samme værdi som du giver N ovenfor. altså delay(30) eller hvad du nu synes.
Sub Delay(DelaySeconds) dim SecCount, Sec1, Sec2 SecCount = 0 Sec2 = 0 While SecCount < DelaySeconds + 1 Sec1 = Second(Time()) 8> If Sec1 <> Sec2 Then Sec2 = Second(Time()) SecCount = SecCount + 1 End If Wend End Sub
Ja, men det kan jeg ikke forstå. I min test funker det da perfekt, og du kan gentage så mange gange du har lyst. Prøv denne i stedet. Den fungerer bar ikke, hvis vi lige er ved at passere midnat: sub delay(DelaySeconds) dim StartTid StartTid=timer while timer<StartTid+DelaySeconds wend end sub
Jamen jeg kan da lige melde tilbage om hvordan det går i morgen, når der er deadline, og det hele helst skal køre på skinder når det skal præsenteres for slut-kunden.
Jeg er igang med at teste det samlede værk igennem. Hvordan kan jeg egentlig vide om feltet reelt skifter mellem false og true under mit delay?
ja, men er det ikke dig selv, der skal sørge for at database-feltet bliver ændret? Jeg forstod, at DU skulle åbne databasen (det sædvanlige med et connection-object etc. etc.) og så sætte et bestemt felt til true. Så hvis du gør det, så vil feltet jo skifte. Jeg gætter på, at det er en måde at signalere på til nogle andre at nu er du på banen.
<% Sub Delay(DelaySeconds) dim SecCount, Sec1, Sec2 SecCount = 0 Sec2 = 0 While SecCount < DelaySeconds + 1 Sec1 = Second(Time()) If Sec1 <> Sec2 Then Sec2 = Second(Time()) SecCount = SecCount + 1 End If Wend End Sub
'definer hvilket felt der skal opdateres, alt efter hvilken streng der sendes.
Dim felt If request.form("reset") = "Start" Then felt = "Start maalinger" If request.form("reset") = "Stop" Then felt = "Stop maalinger" If request.form("reset") = "Reset Opvask 1" Then felt = "Reset vasker1" If request.form("reset") = "Reset Opvask 2" Then felt = "Reset vasker2" If request.form("reset") = "Reset Lærere" Then felt = "Reset el laere"
'Åben databasen og sæt feltet til true Dim Connect, connString Set Connect = Server.CreateObject("ADODB.Connection") connString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("Reset.mdb") Connect.Open connString
Dim Query, rs Query = "SELECT * FROM [Knapper]" Set rs = Server.CreateObject("ADODB.Recordset") rs.Open Query, Connect, 1, 2
rs.update rs(felt)=true rs.Update
Connect.Close Set Connect = Nothing
Delay(30) 'Nu holdes der pause i 30 sek
'Åben databasen og sæt feltet til true Dim Connect2, connString2 Set Connect2 = Server.CreateObject("ADODB.Connection") connString2 = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("Reset.mdb") Connect2.Open connString2
Dim Query2, rs2 Query2 = "SELECT * FROM [Knapper]" Set rs2 = Server.CreateObject("ADODB.Recordset") rs2.Open Query2, Connect2, 1, 2
Det ser da fornuftigt ud, men der er et par ting, jeg vil kommentere:
Du bør anbringe ordren Option Explicit allerøverst. Altså lige efter den første <%. Det tvinger dig til at erklære alle variable i en dim-sætning. Det letter fejlfinding, hvis man har lavet stavefejl i et variabelnavn, og systemet kører en lille smule bedre, når asp-fortolkeren på forhånd får at vide hvilke variable, der er.
Der er ingen grund til at lave nye variable connect2, rs2 etc. rs(felt) står der et sted. Hvad er felt? Er det ikke det samme som "reset vaskeri", som du bruger senere?
Hmm... nej fejlen kommer temmelig uregelmæssigt, men oftest efter jeg har genstartet min PC, eller har været logget ud. Ca hver 3. gang jeg trykker på knapperne.
Jeg forsøgte lige med denne i stedet, men jeg får stadig javascript fejl. sub delay(DelaySeconds) dim StartTid StartTid=timer while timer<StartTid+DelaySeconds wend end sub
dim connect...: En variabel må kun erklære 1 gang. Mon ikke din fejl skyldes, at du to gange har skrevet 'dim connect'? Men pyt med det, så bruge blot connect1, rs1, rs2, etc. etc.
Det er ok, at lægge JavaScript-koden i head.
Koden, der kører på serveren (det der er gemt bag <%.... %>) skal være VBscript. Koden hos klienten plejer at være Javascript. Delay-proceduren er VBscript, og den skal IKKE ligge i html-siden, der sendes til brugeren.
Min deadline er blevet rykket til i morgen, da de andre parter ikke er færdige med deres forberedelser endnu. Så nu kan jeg sandsynligvis godt nå at få rettet javascriptfejlen.
FFF(): Fjern den helt. Det er en reminiscens fra noget andet, hvor det blot skulle markeres at tiden var udløbet.
Årsagen til den kun laver fejl af og til er, at din asp-side ofte når at komme på plads lige inden N bliver 0. Lav det om til: var N=30 function count() { if (N>=0){ tmp=setTimeout("count()",1000); document.getElementById('counter').innerText = N; N=N-1 } } function Hent(){ self.location="delay.asp" count() }
Fejl, der afhænger af tidslige forløb er ofte meget vanskelige at opdage. Fejlen opstod, fordi funktionen FFF() ikke var med mere. men det er jo godt, du nu har fået ekstra tid.
Fantastico! Det virker - Tusind tak for hjælpen! :)
Synes godt om
Ny brugerNybegynder
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.