Just nu i M3-nätverket
Gå till innehåll

Laddtiden


gurkan_olsson25

Rekommendera Poster

gurkan_olsson25

Hej!

Jag skulle vilja visa laddtiden på min hemsida för mina besökare.

 

T.ex.

Det tog 0.2 sekunder att ladda sidan.

 

Någon som känner för att hjälpa mig?

 

Länk till kommentar
Dela på andra webbplatser

[MÄRK]<%[/MÄRK]
[color="#0000ff"]Dim[/color] t1, result
t1 = [color="#0000ff"]Time[/color]r
[color="#006400"]'Gör vad du ska[/color]
result =  [color="#0000ff"]Timer[/color] - t1
[b]Response[/b].Write [GRÅ]"Sidan tog "[/GRÅ]& [color="#0000ff"]Round[/color](GenTime,2) &[GRÅ]" sekunder att ladda"[/GRÅ]
[MÄRK]%>[/MÄRK]

 

Länk till kommentar
Dela på andra webbplatser

Response.Write "Sidan tog "& Round(GenTime,2) &" sekunder att ladda"

 

Ska man vara petig så ger det genereringstiden, sedan ska sidan skickas till användaren också.

 

 

Länk till kommentar
Dela på andra webbplatser

gurkan_olsson25

När jag testar koden visar den hela tiden att sidan tog 0 sekunder att ladda.

Är det något jag ska ändra?

 

Länk till kommentar
Dela på andra webbplatser

Magnus Ahlkvist

Det är nog result du ska skriva ut, inte GenTime, eftersom GenTime inte är initierad, om jag inte är helt snurrig idag.

--

Snäll ibland. Rättvis nästan jämt. Elak för det mesta.

 

Länk till kommentar
Dela på andra webbplatser

När jag testar koden visar den hela tiden att sidan tog 0 sekunder att ladda.

Det är för att övrig asp-kod på sidan tagit mindre än en hundradels sekund att rendera. Låter rimligt om du inte har så mkt asp-kod.

 

Det är nog result du ska skriva ut, inte GenTime,

Hehe, det också!

[inlägget ändrat 2005-02-22 15:21:01 av Anjuna Moon]

Länk till kommentar
Dela på andra webbplatser

gurkan_olsson25

Jag testade att byta ut Gentime mot result. Hände ingenting.

Får jag fråga, vad står 2:an för i:

[b]Response[/b].Write [GRÅ]"Sidan tog "[/GRÅ]& [color="#0000ff"]Round[/color](result,2) &[GRÅ]" sekunder att ladda"[/GRÅ][MÄRK]%>[/MÄRK]

 

Länk till kommentar
Dela på andra webbplatser

Får jag fråga, vad står 2:an för i:

Antal decimaler som ingår i avrundningen.

Hände ingenting.

Se mitt tidigare inlägg. Hur mycket asp-kod har du mellan de två Timer-raderna?

 

Länk till kommentar
Dela på andra webbplatser

gurkan_olsson25

Du får ursäkta, men nu hänger jag inte riktigt med.

 

Ska jag lägga in asp-kod mellan Timer-raderna?

 

Länk till kommentar
Dela på andra webbplatser

Ska jag lägga in asp-kod mellan Timer-raderna?

Nä, alltså, det enda som sker mellan (1) och (2) nedan är att beräkna den tid det tar för asp:s parser att exekvera instruktioner

 

(1)t1 = Timer

 

(2)result = Timer - t1

Response.Write "Sidan tog "& Round(result,2) &" sekunder att ladda"

 

(1) bör du då alltså lägga längst upp på din sida, och (2) längst ner. Men har du i övrigt ingen asp på din sida så är det ju inte konstigt att du får ut en nolla. Att inte exekvera någon kod tar ju inte så lång tid.

 

Observera, som jag sa ännu tidigare i tråden, att detta inte har något med överföringstider att göra. Det mäter enbart tiden från att servern mottagit begäran om sidan till att den skickar iväg den.

 

[inlägget ändrat 2005-02-22 15:55:04 av Anjuna Moon]

Länk till kommentar
Dela på andra webbplatser

Japp,

lägg in all övrig aspkod där Patrik Ahlberg skrev

'Gör vad du ska

Raderna ovan startar timern och raderna efter stoppar timern

Sedan skrivs skillnaden mellan start o slut ut.

 

Länk till kommentar
Dela på andra webbplatser

gurkan_olsson25

Jag gjorde Exakt som du sa, men sidan visar fortfarande bara 0 sekunder.

 

Om jag vill ha överföringstiden, vad är det då för kod? Vad är skillnaden mellan överföringstiden och genereringstiden?

 

Länk till kommentar
Dela på andra webbplatser

Genereringstiden: Tiden det tar för webbservern att tolka asp-koden och generera en statisk html-sida

Överföringstiden: Tiden det tar att skicka html-sidan från webbservern till surfarens webbläsare.

 

Jag gjorde Exakt som du sa, men sidan visar fortfarande bara 0 sekunder.

Sidan tar inte noll sekunder att skapa, men Timer-objektet har en noggrannhet på 1/100 sekund. Så om sidan tar ex. 0.004 sekunder att skapa så kommer detta ändå visas som 0.

 

Om jag vill ha överföringstiden, vad är det då för kod?

Den kan du omöjligt mäta via ASP

[inlägget ändrat 2005-02-22 16:19:17 av Anjuna Moon]

Länk till kommentar
Dela på andra webbplatser

Det finns ett sätt att ge en någorlunda bra uppskattning av nedladdningstiden, där ASP och Javascript får jobba tillsammans.

 

1) Börja sidan med följande:

[log]

<%response.buffer=true%>
<html>
<head>
<SCRIPT LANGUAGE=[GRÅ]"JavaScript"[/GRÅ] TYPE=[GRÅ]"text/javascript"[/GRÅ]>
<!--
var dt=[color="#0000ff"]New[/color] [color="#0000ff"]Date[/color](); 
var StartS=dt.getSeconds(); 
var StartMS=dt.getMilliseconds();
var EndS; 
var EndMS;

[color="#0000ff"]Function[/color] ShowLoadTime(el) {
	dt2=[color="#0000ff"]New[/color] [color="#0000ff"]Date[/color]();
	EndS=dt2.getSeconds(); 
	EndMS=dt2.getMilliseconds();
	o=document.getElementById(el);
	diff=parseFloat((EndS+[color="#006400"]'.'+EndMS)-(StartS+'.'+StartMS)).toPrecision(2);[/color]
	o.innerHTML=[GRÅ]"Laddtid:"[/GRÅ]+diff;
}

//-->
</SCRIPT>
<%response.flush()[MÄRK]%>[/MÄRK]

[/log]

 

2) Sedan kommer resten av sidans innehåll fram tillochmed </html>

 

3) Lägg in följande lager där på sidan du vill att laddningstiden skall skrivas ut:

<div id=[GRÅ]"LoadTime"[/GRÅ]></div>

 

4) Sist av allt på sidan lägger du in:

<%response.flush()[MÄRK]%>[/MÄRK]

 

Länk till kommentar
Dela på andra webbplatser

gurkan_olsson25

Ledsen att göra dig besviken, men nu fungerade det inte alls. Det stod inte ens "Sidan laddades på 0 sekunder".

 

Länk till kommentar
Dela på andra webbplatser

Ok, det första jag hittar är att du missat anropet i BODY-taggen, så ändra denna till:

<body onload=[GRÅ]"ShowLoadTime('LoadTime');"[/GRÅ]>

 

Jag låter dig testa det först, tror det skall fixa biffen.

 

Länk till kommentar
Dela på andra webbplatser

gurkan_olsson25

Jag visste inte riktigt var jag skulle lägga body onload men jag lade den mellan BODY-taggarna. Det fungerar dock fortfarande inte.

 

Länk till kommentar
Dela på andra webbplatser

Jag visste inte riktigt var jag skulle lägga body onload men jag lade den mellan BODY-taggarna

 

Nej, du ska ersätta din befintliga

<body>

mot

<body onload="ShowLoadTime('LoadTime');">

 

Länk till kommentar
Dela på andra webbplatser

Förresten hittade jag det andra felet, det är ett fel som uppstår när man klipper och klistrar kod ur eforum. På ett par ställen har gemener bytts ut mot versaler vilket inte är tillåtet i Javascript.

 

I javascriptet jag gav dig ska du ändra följande:

 

I din kod, ändra New till new

var dt=new Date();

 

dt2=new Date();

 

Samt ändra till litet f i Function

 

function ShowLoadTime(el) {

 

 

Länk till kommentar
Dela på andra webbplatser

Har gjort det nu, men problemet kvartstår.

Jag hann skriva ett till inlägg medans du ändrade, som rörde gemener/versaler. Har du fixat det också?

 

Länk till kommentar
Dela på andra webbplatser

gurkan_olsson25

Tusen tack Anjuna Moon!! Du har varit till mycket stor hjälp. Tack för allt.

 

Jag har dock en sista fråga:

Jag skulle vilja skriva in "sekunder" efter laddtiden. Var i koden gör jag det?

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...