En ASP.NET-side som kan måle brugerens download-hastighed?
Hej Eksperter.Jeg er rimelig ny i programmerings-genren, og vil gerne have hjælp til at lave en ASP.NET-side vha. VB-scripts, hvor web-brugerne skal kunne måle deres download-hastighed, og så få resultatet vist på en ASP.NET-side.
Grunden til at jeg vil lave siden i ASP.NET, er at jeg til sidst vil smide alle resultater ind i en database, som skal være tilgængelig for web-brugerne.
NB! Mit udgangspunkt er at bruge meget kort og simpel kodning!
Jeg har 2 idéer til hvordan download-hastigheden kan måles:
(1)
Første forslag er at brugeren downloader en fil (1024kb) fra ASP.NET-siden, og ASP.NET-siden vil så vha. start-tid og slut-tid beregne brugerens download-hastighed.
Her er mit første udkast til koden:
Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles LinkButton1.Click
' File & Path
Dim filepath As String = "files/10240kb.txt"
' File Name
Dim filename As String = System.IO.Path.GetFileName(filepath)
' Download Start Time
Dim st As Long = Environment.TickCount
' Clears Buffer
Response.Clear()
' File Type
Response.ContentType = "application/octet-stream"
' Default Filename In Download Dialog Box
Response.AddHeader("Content-Disposition", "attachment; filename=""" & filename & """")
' Sends Buffered Output To Client (Download)
Response.Flush()
' Writing File To Disk
Response.WriteFile(filepath)
' Download Finish Time
Dim et As Long = Environment.TickCount
' End
Response.End()
End Sub
(2)
Andet forslag er at web-brugeren åbner en ASP.NET-side der indeholder en masse kode, som ialt fylder 1024kb, hvorefter ASP.NET-siden beregner hvor langt tid det tog brugeren at åbne siden og viser brugerens download-hastighed.
Her er et udkast til denne metode:
<html>
<head runat="server">
</head>
<body>
<script language="vbscript" type="text/vbscript">
<!-- Download Start Time -->
ST = Environment.TickCount
<!-- En masse x'er som tilsammen fylder 1024kb -->
<!-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxx~ -->
<!-- Download Finish Time -->
ET = Environment.TickCount
<!-- Hastighedsberegning -->
DT = (ET - ST) / 1000
DataSize = 50
LS = DataSize / DT
LSx = (LS * 8)
kbpsx = Math.Round(LSx * 10 * 1.02)
kbps = kbpsx / 10
<!-- Vis resultat -->
document.write(kbps)
</script>
</body>
</html>
@@@ Jeg har meget hurtigt brug for hjælp til at strikke det hele sammen! @@@