Détecter la vitesse Internet avec JavaScript
De nombreuses applications nécessitent la possibilité de mesurer la vitesse Internet de l'utilisateur. Bien qu'elle ne soit pas toujours précise, elle peut fournir une indication utile sur la connectivité de l'utilisateur.
Approche
La solution consiste à charger une image avec une taille de fichier connue et à calculer la vitesse en fonction du temps nécessaire pour le charger. Cela se fait en :
Exemple
Le code suivant fournit une implémentation de cette approche :
var imageAddr = "https://example.com/image.png"; var downloadSize = 7300000; //bytes function MeasureConnectionSpeed() { var startTime, endTime; var download = new Image(); download.onload = function () { endTime = (new Date()).getTime(); showResults(); }; download.onerror = function (err, msg) { ShowProgressMessage("Invalid image, or error downloading"); } startTime = (new Date()).getTime(); var cacheBuster = "?nnn=" + startTime; download.src = imageAddr + cacheBuster; function showResults() { var duration = (endTime - startTime) / 1000; //seconds var bitsLoaded = downloadSize * 8; var speedBps = (bitsLoaded / duration).toFixed(2); var speedKbps = (speedBps / 1024).toFixed(2); var speedMbps = (speedKbps / 1024).toFixed(2); ShowProgressMessage("Your connection speed is:"); ShowProgressMessage(speedBps + " bps"); ShowProgressMessage(speedKbps + " kbps"); ShowProgressMessage(speedMbps + " mbps"); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!