Методы проверки скорости Интернета с помощью JavaScript: XMLHttpRequest, Fetch API и Navigator API

Чтобы проверить скорость интернета с помощью JavaScript, вы можете использовать различные методы. Вот несколько подходов:

  1. XMLHttpRequest или Fetch API: вы можете отправить HTTP-запрос на надежный сервер и измерить время, необходимое для загрузки небольшого файла. Рассчитав скорость загрузки, вы можете оценить скорость интернета. Вот пример использования Fetch API:
const startTime = performance.now();
fetch('https://example.com/file.bin')
  .then(response => response.blob())
  .then(blob => {
    const endTime = performance.now();
    const duration = endTime - startTime;
    const fileSize = blob.size;
    const speedMbps = (fileSize / (duration / 1000) / 1024 / 1024).toFixed(2);
    console.log(`Your internet speed is approximately ${speedMbps} Mbps.`);
  })
  .catch(error => {
    console.error('Error:', error);
  });
  1. Библиотека Speedtest.js. Вы можете использовать стороннюю библиотеку, например Speedtest.js, которая обеспечивает простой способ измерения скорости Интернета. Вы можете найти библиотеку на GitHub и обратиться к ее документации за подробностями реализации.

  2. HTML5 Navigator API: API Navigator в HTML5 предоставляет объект connection, который может предоставить вам информацию о типе сетевого подключения пользователя. Хотя он не измеряет скорость интернета напрямую, его можно использовать в качестве индикатора. Вот пример:

const connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;
if (connection) {
  const speedMbps = (connection.downlinkMax / 1024).toFixed(2);
  console.log(`Your maximum internet speed is approximately ${speedMbps} Mbps.`);
} else {
  console.log('Connection API not supported.');
}