SORU
3 NİSAN 2011, Pazar


Nasıl Javascript internet hızı tespit etmek için?

Nasıl kullanıcının internet hızı tespit ve sayfada gösteren Javascript bir sayfa oluşturabilirim? Bir şey internet hızı gibi ??/?? Kb/s.

CEVAP
3 NİSAN 2011, Pazar


O da olabilir bir nebze ama olmayacak gerçekten doğru, fikir load image ile bilinen bir dosya boyutu, daha sonra kendi onload olay ölçüsü ne kadar zaman geçti o kadar olay oldu tetikledi, ve bölmek bu sefer görüntünün dosya boyutu.

Burada bulabilirsiniz örnek: Calculate speed using javascript

Test durumu düzeltmeyi uygulamadan orada önerilen:

//JUST AN EXAMPLE, PLEASE USE YOUR OWN PICTURE!
var imageAddr = "http://www.kenrockwell.com/contax/images/g2/examples/31120037-5mb.jpg"; 
var downloadSize = 4995374; //bytes

window.onload = function() {
    var oProgress = document.getElementById("progress");
    oProgress.innerHTML = "Loading the image, please wait...";
    window.setTimeout(MeasureConnectionSpeed, 1);
};

function MeasureConnectionSpeed() {
    var oProgress = document.getElementById("progress");
    var startTime, endTime;
    var download = new Image();
    download.onload = function () {
        endTime = (new Date()).getTime();
        showResults();
    }
    
    download.onerror = function (err, msg) {
        oProgress.innerHTML = "Invalid image, or error downloading";
    }
    
    startTime = (new Date()).getTime();
    var cacheBuster = "?nnn="   startTime;
    download.src = imageAddr   cacheBuster;
    
    function showResults() {
        var duration = (endTime - startTime) / 1000;
        var bitsLoaded = downloadSize * 8;
        var speedBps = (bitsLoaded / duration).toFixed(2);
        var speedKbps = (speedBps / 1024).toFixed(2);
        var speedMbps = (speedKbps / 1024).toFixed(2);
        oProgress.innerHTML = "Your connection speed is: <br />"   
           speedBps   " bps<br />"     
           speedKbps   " kbps<br />"   
           speedMbps   " Mbps<br />";
    }
}
<h1 id="progress">JavaScript is turned off, or your browser is realllllly slow</h1>

"real" speed test service ile hızlı karşılaştırma büyük resim kullanarak da 0,12 Mbps küçük bir fark gösterdi.

Test doğruluğunu sağlamak için, Chrome dev aracı azaltma etkin kodu çalıştırın ve eğer sonuç sınırlaması eşleşirse bakın.(kredi 9**:) için de geçerli)

Önemli şeyleri akılda tutmak için:

  1. Görüntü kullanılan düzgün optimize edilmiş ve sıkıştırılmış olmalıdır. Eğer web bağlantıları, varsayılan sıkıştırma değil eğer server hızlı olduğundan daha büyük gösterebilir. Başka bir seçenek, örneğin jpg uncompressible dosya biçimi kullanıyor.(teşekkürler pointing this out reminding me Fluxine için Rajande Rauli)

  2. Önbellek buster mekanizması yukarıda açıklanan sorgu dizesi parametrelerini görmezden yapılandırılabilir bazı VİDEO sunucuları, bu nedenle daha iyi görüntü kendisini önbellek denetim başlıklarını ayarlama ile işe yaramayabilir.(pointing this out için teşekkürler orcaman))

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ASUS Campus Life

    ASUS Campus

    18 Mart 2013
  • Mark Halberstadt

    Mark Halbers

    19 ŞUBAT 2010
  • Tome Rodrigo

    Tome Rodrigo

    9 Temmuz 2006