13. februar 2003 - 21:20Der er
10 kommentarer og 2 løsninger
Vis hvor lang tid udregning tager i messagebox
Hej - er 100% newbii i ASP.NET. Derfor et nemt spørgsmål
Jeg skriver min .aspx-side med VB.NET som sprog.
Jeg har en Function, der looper indtil en bestemt betingelse er opfyldt. Jeg kunne godt tænke mig at måle hvor mange millisekunder der går fra start af function til den returnerer, og skrive det i en messagebox.
Pseudo-kode:
Function MinFunction(MinParameter As Integer) As Boolean Dim i as Integer 'Start tidstagning For i = 1 to MinParameter 'Udfør en masse beregninger If EnEllerAndenBetingelseErOpfyldt Then 'Udskriv beregningstid i messagebox Return True End if 'Udskriv beregningstid i messagebox Return=False Next i End Function
Mit spørgsmål er altså:
1) Hvordan får jeg målt tiden i ovenstående (kan vel bruge Now() til et eller andet?
2) For at få smidt en MsgBox på skærmen skal du bruge Clientside-scripting... f.eks JS: <script language="JavaScript">alert("hej med dig");</script>
Til sidst skal jeg lige sige at mine kodeeksempler er uden garanti for at de virker, da det er skrevet løst ud nogen reference ved hånden, men forhåbenligt kan du se princippet i det.
Mht. 1, så var det den løsning jeg selv havde tænkt - men bliver forskellen mellem tid2 og tid1 ikke målt i sekunder, ikke millisekunder
Mht. 2, Så skal jeg have den tilsvarende kode i VB.NET...
Jeg er udemærket klar over principperne, dem har jeg selv "udtænkt", problemet er hvordan syntaksen helt præcist ser ud, når jeg ikke har andet end en text-editor til at hjælpe mig, og ikke Visual Studio's fine hjælpefunktioner :o(
martin_moth>> du har da SDK'et, og tusindvis af sider på MSDN og Google ;)
et lille opslag på TimeSpan viser at den kan returnerer en tid helt ned i millisekunder, sååeh... ;)
I Vb.net ville koden se nogenlunde sådan her ud
Dim tid1 As DateTime = DateTime.Now() Dim i As Integer
For i = 0 To 10000
Next
Dim tid2 As DateTime = DateTime.Now() Dim tidgået As TimeSpan = tid2 - tid1
Dim tid As String = TimeSpan.Milliseconds.ToString()
ang. 2'eren, så er der ikke nogen tilsvarende kode i vb.net... læs dog hvad jeg skriver !!! " For at få smidt en MsgBox på skærmen skal du bruge Clientside-scripting"... vb.net er IKKE client-side scripting, og i forbindelse med asp.net er det KUN noget der kører på SERVEREN... ergo er den kode jeg har skrevet den rigtige
Du behøver altså heller ikke VS's fine hjælpefunktioner... Webmatrix er udemærket til asp.net og er helt gratis, og indeholder mange af de samme ting som "storebroderen" vs gør.
Jeg bruger skam også webmatrix - jeg har nok bare ikke luret at få den til at vise det jeg vil have... Og at søge på msdn osv. tager laaang tid, især man ikke er helt 100 på hvad man skal søge efter.
"ang. 2'eren, så er der ikke nogen tilsvarende kode i vb.net... læs dog hvad jeg skriver !!!"
So sorry! Du skrev at jeg skal bruge client side scripting, og det udelukker jo VB.NET - men jeg vidste ikke at man ikke kunne kalde en msgbox eller tilsvarende fra serverside. I øvrigt ville jeg så nok foretrække VBScript i mit clientside-script, for ligesom at "blive i stilen" ;o)
Smid et svar, og du får points :o)
PS: jeg kan kalde Now direkte i asp.net, behøver ikke DateTime.Now() :o)
Øhh - altså lige bortset fra, at den ikke vil æde tid2 - tid1, da man ikke kan bruge " - " på datoer. Der må være en datedifference() eller noget i den stil...
Ja, det havde jeg (tænkt mig at trække datoer fra hinanden). Det foreslår cyberfessor i øvrigt også i sit svar, og for mig virker der meget logisk - og det kan du i masser af andre programmer :o)
Men det du skriver lyder til at være helt rigtigt, skal lige hjem og tjekke (har ikke en webserver der kan æde asp.net lige i nærheden - og skal direkte videre ud i nattelivet, så det bliver først i weekenden)
martin >> Hehe... Hov, det var mig, der fik formuleret mig dårligt :-/ Og så misforstod jeg også din kommentar omkring " - "... Men jeg bruger selv den kode, jeg har skrevet, så den burde virker :-)
martin_moth>> jeg ville nok ikke bruge vbscript, da det tvinger dine besøgende til at bruge IE...
Ang. DateTime.Now og Now har det ikke noget med asp.net at gøre, men VB.net og C#... jeg koder altid selv i C#, og kender kun de helt overordnede forskelle mellem de to sprog, så at man bare kan skrive Now i vb.net var jeg ikke lige klar over :)
i C# kan man også trække en tid fra hinanden hvis de er af typen DateTime, så det kan også være en lille forskel der mellem vb.net og c#.
Men hvis du har fået det til at virke med den kode midas kom med er det jo super :) han har sikkert lidt mere erfaring indenfor vb.net end jeg har ;)
I får begge points for hjælpen og for de kloge ord jeg fik med på vejen :o)
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.