Skip to content
Youths Forum Youths Forum Youths Forum

Tech Blogs & Programming Tutorials

Youths Forum Youths Forum Youths Forum

Tech Blogs & Programming Tutorials

  • Blog
  • News
  • Programming
    • PHP
    • JavaScript
    • JQuery
    • CSS
    • HTML
    • API
  • Stock Market Live
  • Automobiles
    • Cars
  • Gadgets
    • Phones
    • Android Phones

Categories

  • Artificial Intelligence (1)
  • Automobiles (12)
    • Cars (7)
  • Blog (104)
    • Poems (2)
    • Space (2)
  • Command (2)
  • Education (2)
  • Entertainment (4)
  • Gadgets (9)
    • Phones (8)
      • Android Phones (4)
  • HTML Templates (11)
  • IT Training Institutes (1)
  • Lifestyle (4)
  • News (190)
  • Others (23)
  • Programming (296)
    • API (16)
    • CSS (83)
    • Database (4)
    • Hosting (1)
    • HTML (37)
    • JavaScript (117)
      • JQuery (27)
      • ReactJS (7)
    • PHP (116)
  • Python (3)
  • recipes (1)
  • SEE Result (1)
  • Server (3)
  • Blog
  • News
  • Programming
    • PHP
    • JavaScript
    • JQuery
    • CSS
    • HTML
    • API
  • Stock Market Live
  • Automobiles
    • Cars
  • Gadgets
    • Phones
    • Android Phones
Close

Search

JavaScript

Calculate Internet Connection Speed using JavaScript

By Admin
June 2, 2021 2 Min Read
0

In this article,  we are providing you with a code snippet which you can include in any webpage where you want to display the internet speed in Mbps.

Basic Idea :

The basic idea here is to load an image and see how much time it takes to load the image size. Based on the time taken to load the image size, we can easily calculate the internet speed in Mbps.

Source Code :

<style>
  body{
    background:snow;
  }
  .card{
    background-color: #dbf1d7;
    width:400px;
    padding:20px;
    position: absolute;
      top:  50%;
      left: 50%;
      transform: translate(-50%,-50%);
      box-shadow: 0 3px 10px rgb(0 0 0);
  }
  .result {
     	font-size: 5em;
      line-height: 1.3em;
      text-align: center;
  }
  .message{
      text-align: center;
      font-weight: bold;
      color: #221f1f;
      font-size: 4.5vh;
      line-height: 6vh;
      min-height: 6vh;
  }
</style>

<div class="card">
    <div class="message" id="progress">
        Calculating Speed ...
    </div>
    <div class="result" id="result">
    	...
    </div>
</div>

<script type="text/javascript">

  if(window.addEventListener){
    window.addEventListener('load', InitiateSpeedDetection, false);
  }else if(window.attachEvent){
    window.attachEvent('onload', InitiateSpeedDetection);
  }

  var imageAddr = "https://4k-uhd.nl/wp-content/uploads/2018/08/4K-3840x2160-Wallpaper-Uitzicht-5.jpg"; 
  var downloadSize = 5739426; //bytes

  function ShowProgressMessage(msg) {
      var oProgress = document.getElementById("progress");
      if (oProgress) {
          oProgress.innerHTML = msg;
      }
  }

  function showResultMessage(msg){
    document.getElementById("result").innerHTML = msg;
    document.getElementById("progress").innerHTML = 'Your Internet Speed is';
  }

  function InitiateSpeedDetection() {
      ShowProgressMessage("Calculating Speed ...");
      window.setTimeout(MeasureConnectionSpeed, 1);
  };

  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;
          var bitsLoaded = downloadSize * 8;
          var speedBps = (bitsLoaded / duration).toFixed(2);
          var speedKbps = (speedBps / 1024).toFixed(2);
          var speedMbps = (speedKbps / 1024).toFixed(2);
          showResultMessage(speedMbps + " Mbps");
      }
  }
</script>

Follow this video for complete guidance :

Tags:

internet speedjavascript
Author

Admin

Follow Me
Other Articles
Previous

Access Camera and Read QR code using JavaScript

Next

News Blog – Free Responsive HTML Template for News Websites

No Comment! Be the first one.

Leave a Reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Nepal Life’s ‘Business Excellence Conference’ Concludes, Over 13 Billion in First Premium Income Collected
  • Direct Meeting Between Chinese and Nepali Battery Businesspeople in Lalitpur: What Kind of Battery is in Demand in Nepal?
  • Kamana Sewa Bikas Bank Calls 20th Annual General Meeting, Other Resolutions to be Passed Including 15% Cash Dividend
  • Preparations complete for ‘NADA Auto Show 2026’, parking arranged at two locations
  • Nepal Telecom’s 4G Service Launched in Badimalika, Easing Access for Pilgrims

Tags

adsense ai animate animation animation using HTML and CSS API blog calculator chatgpt Cryptocurrency CSS css animation design Email Facebook featured filemanager file manager free template google htaccess HTML image Instagram interview javascript JQuery jquery ui NADA AutoShow NADA Auto Show 2024 password PHP Progressive Web App PWA QR random react reactjs Rotate travel Twitter vpn youthforum youthsforum youtube

About Us

At Youths Forum, we are passionate about sharing knowledge that empowers students, educators, professionals, and technology enthusiasts.

Our Mission

Our mission is simple: to make technology and education accessible, understandable, and beneficial for everyone. We strive to create content that helps our readers learn new skills and stay updated with industry developments.

RSS RSS

  • Nepal Life’s ‘Business Excellence Conference’ Concludes, Over 13 Billion in First Premium Income Collected Admin
  • Direct Meeting Between Chinese and Nepali Battery Businesspeople in Lalitpur: What Kind of Battery is in Demand in Nepal? Admin
  • Kamana Sewa Bikas Bank Calls 20th Annual General Meeting, Other Resolutions to be Passed Including 15% Cash Dividend Admin

Quick Links

  • Stock Market Live
  • Parliament Election 2082
Copyright 2026 — Youths Forum. All rights reserved. Blogsy WordPress Theme