Я хочу исключить JQuery Mobile JS-библиотеку из моего заголовка, когда у телефона нет поддержки «A grade», указанной в jQuery Mobile ( http://jquerymobile.com/gbs/ ). Я нахожу, что на старых телефонах Blackberry (поддерживающих JS) инфраструктура jQM размалывает эти телефоны до скорости улиток.
В качестве примера эти ребята хорошо выполняют работу с библиотекой jQuery Mobile и связанными стилями в зависимости от поддержки мобильного браузера: demo.livebookings.biz
Как реализовать подобный подход на стороне сервера, чтобы я мог выбирать, когда включать JS-файлы (например, jQM framework) и любые файлы CSS в соответствии с поддержкой мобильного браузера.
благодаря
Функцией jQM является клиентская сторона, подробнее об этом здесь:
Функция класса A , возвращающая логическое значение, по умолчанию: функция, возвращающая значение
$.support.mediaquery
Любые условия поддержки, которые необходимо выполнить для продолжения.
Для серверной части вам понадобится нечто вроде
Раньше я использовал Mobile ESP и имел отличные результаты. Это также легко расширить / настроить
Вы должны сделать это, используя пользовательский агент браузеров, но поскольку их очень сложно сделать сами (и держать его в курсе событий ), WURFL – это библиотека, которая выполняет всю тяжелую работу для вас, разрабатывает телефон модель и дает вам возможности телефонов.
Используя это, вы можете узнать, есть ли у телефона определенные функции в браузерах, и в зависимости от того, что вы называете «A-grade», вы можете использовать JS-библиотеки или нет.
У них есть довольно ужасный веб-сайт, но подробная библиотека и PHP для чтения и кеширования вам даны.
Вы можете сделать это на стороне клиента путем обнаружения функции с помощью метода jQuery $.support()
:
<script src="jquery-1.6.4.js"></script> <script> //check to see if media queries are supported (this is how the jQuery Mobile framework detects "grade A" browsers), $.support.mediaquery returns true or false if ($.support.mediaquery) { //if support is found then load the jQuery Mobile JS file $.getScript('jquery.mobile-1.0.js'); } </script>