Существует нет действительно чистого способа решить эту проблему, потому что нет такой вещи, как HTTP-заголовок для тонких клиентов или удаленных рабочих столов.
Но если вам действительно нужно решение для определения медленных клиентов, вы можете попробовать следующее. Это похоже на то, что Google использует на Картах, чтобы определить, может ли клиент обрабатывать Карты.
В этом подходе вы предоставили бы HTML-страницу с фрагментом встроенного JavaScript. Этот кусок выполняет тяжелую операцию с ресурсами, которая должна быть аналогична действию вашего реального кода.
Вы измеряете время, затраченное на эту операцию, и решаете, хорошо ли оно работает.
Теперь вы загружаете фактический JavaScript либо путем создания тега сценария с помощью document.write
и передачи параметра, который сообщает сценарию, в каком режиме запускаться, или инициализируя уже загруженный код соответствующим параметром.
quick'n'dirty пример реализации будет выглядеть следующим образом (с помощью JQuery, но может также быть реализован в виде обычного JS):
<script type="text/javascript">
var
$elem,
now = new Date(),
isFast,
counter = 0;
while (new Date() - now < 100)
{
$elem = $('<div style="display: none">');
$('body').append($elem);
$elem.remove();
++counter;
}
alert(counter);
isFast = (counter > 100);
// now, either embed the actual script ...
document.write('<scr'+'ipt type="text/javascript" src="http://www.example.com/js/test.js?fast=' + isFast + '"></scr'+'ipt>');
// ... or initialize the already loaded code
var myControllerInstance = new MyController(isFast);
myControllerInstance.makeStuffHappen();
</script>
Деликатная часть заключается в определении того, что является «быстрым», потому что могут быть разные причины, по которым временной код работает медленно. У вас может быть слишком много ложных негативов или ложных срабатываний.
EDIT: Обновленный пример JS, предложенный @fero. Благодаря!
Настоящая настоящая проблема здесь; У меня есть анимация JavaScript на сайте, и ее полностью отключить нельзя. – Reborn
Вы правы, и я сделал именно это. Все еще надеемся на положительный ответ :) – Reborn
Вы можете определить, есть ли у них javascript, например. –