В Android 2.2+ для этого есть объект JS.
Вы можете написать класс для использования CSS в зависимости от типа подключения.
Но, насколько я знаю, он не доступен на iOS для мобильных веб-сайтов.
var connection, connectionSpeed, htmlNode, htmlClass;
connection = navigator.connection || {"type":"0"}; // fallback
switch(connection.type) {
case connection.CELL_3G: connectionSpeed = "mediumbandwidth"; break;
case connection.CELL_2G: connectionSpeed = "lowbandwidth"; break;
default: connectionSpeed = 'highbandwidth';
}
/* set the connection speed on the html element
i.e. <html class="lowbandwidth">
*/
htmlNode = document.body.parentNode;
htmlClass = htmlNode.getAttribute("class") || "";
htmlNode.setAttribute("class", htmlClass + " " + connectionSpeed);
Код из слайда 24 в этой презентации:
http://davidbcalhoun.com/present/mobile-performance/