Avatar billede pegasus72 Nybegynder
11. marts 2004 - 12:30 Der er 6 kommentarer og
1 løsning

Måling af båndbredde ud fra _getbytesloaded?

Kunne man ud fra _getbytesloaded og tiden det tager, beregne den besøgendes båndbredde og ud fra det redirecte til en lettere eller tungere film?
Hvordan kan det evt laves?
Avatar billede _k Nybegynder
11. marts 2004 - 15:11 #1
I teorien kan du godt, i praksis kan du aldrig være sikker. Selvom jeg sidder på en hurtig forbindelse, kan det jo godt ske at min eller din udbyders server er overbelastet og derfor ikke fungerer optimalt. Det er faktisk et af netværksteknologiens store dilemmaer, at man aldrig kan være helt sikker på en stabil up- og downstream.
Om det så rent faktisk vil være smart at sende lightudgaven til dem der sidder på en hurtig forbindelse, men ikke pt. har det helt store hul igennem er en anden sag....

..hvis du alligevel forsøger, må taktikken være at sende modtageren en lille tjek-swf, der som du beskriver måler hastigheden, og baseret på hvad den finder ud af, redirecte til den hurtige eller langsomme side.
Avatar billede barklund Nybegynder
11. marts 2004 - 19:13 #2
Mange sider i dag har en "hurtig eller langsom" side først - og brugere ved godt, hvad de skal trykke på... Så det vil jeg foreslå....
Avatar billede pyroman Nybegynder
14. marts 2004 - 13:49 #3
OK - nu har k og barklund forklaret de praktiske problemer... så kan jeg jo forklare hvordan sådan et checker laves:

Jeg ville (da jeg ikke har lavet sådan en fætter før) lave den ved at hente et stort tungt billede ind - derved får man lidt man kan måle hastigheden på...
Når man henter billedet ind skal man også lige sørge for at det ikke er cached - så er det jo ikke forbindelsens hastighed man måler...

Vi starter med at lave noget kode i første frame (i en tom swf f.eks - ligesom k og barklund har forklaret) :

function checkBandwidth (){
  this.createEmptyMovieClip("checker", 1);
  checker._visible = false;
  rand = Math.round(Math.random()*1000000));
  checker.loadMovie("stort_billede.jpg"+"?var="+rand);
  kiloBitsPerSecond = 0;
  timer = getTimer();
  totalLoadedBytes = checker.getBytesLoaded();
  checker.onEnterFrame = function(){
    if(getTimer()-timer >= 1000){
      loadedBytes = this.getBytesLoaded()-totalLoadedBytes;

      //Det er den følgende variabel der angiver hastigheden:
      kiloBitsPerSecond = (loadedBytes*8)/1024;

      delete this.onEnterFrame;
      this.removeMovieClip();
    }
  }
}
   
Så kan du tjekke hastigheden med:

checkBandwidth();

Hvorefter du har variablen "kiloBitsPerSecond"

Denne funktion finder gennemsnitshastigheden i 1 sekund efter at den blev kaldt...
Ved at lade den tjekke flere gange får man nok et mere præcist resultat...
Avatar billede pegasus72 Nybegynder
24. marts 2004 - 09:40 #4
Smider i ikke et svar?
Avatar billede _k Nybegynder
24. marts 2004 - 10:28 #5
svar
Avatar billede barklund Nybegynder
24. marts 2004 - 10:39 #6
Jeg sagde ikke noget - ignorer mig :)
Avatar billede pyroman Nybegynder
24. marts 2004 - 15:33 #7
tjoo... :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester