Насколько сильно jQMobile зависит от jQuery? - PullRequest
4 голосов
/ 31 мая 2011

Я создал приложение, используя jQuery mobile. Помимо некоторых проблем совместимости на разных устройствах Android, у меня была крайне низкая производительность в системе Android. Поскольку даже чистый шаблон из jquerymobile.com работает медленно на моей вкладке galaxy, я решил, что, возможно, удаление ненужных частей jQuery немного ускорит его. Но кто-нибудь уже пробовал это? Это вообще возможно?

Ответы [ 3 ]

3 голосов
/ 03 июня 2011

Я думаю, что настоящая проблема не в Javascript.Это вызвано HTML и CSS, добавленными JQuery Mobile.JQuery Mobile добавит div-упаковщик и CSS к оригинальному HTML.Получившийся HTML раздут с дополнительными элементами div, а CSS снижает производительность.

вы можете попробовать уже отображенную веб-страницу без jQuery и jQMobile javascript на iphone.Это все еще медленно и мигает при быстрой прокрутке.Другой фреймворк iUI http://code.google.com/p/iui/ работает лучше в длинном списке, потому что HTML-код и CSS проще.Или вы можете сравнить его с простейшим длинным списком без CSS:

  <ul>
        <li> 1 </li>
        <li> 2 </li>
        ...
        <li> 500 </li>
    </ul> 
3 голосов
/ 31 мая 2011

Невозможно запустить jQuery Mobile без самого jQuery. (это для людей, которые могут прийти сюда и не знать об этом)

Вы можете попытаться уменьшить размер JQ и JQM. К сожалению, я не думаю, что есть что-то, что можно удалить из jQuery. Я подумаю и отредактирую;)

Но вы наверняка можете «очистить» jQuery Mobile, так как он состоит из виджетов. Получите JQM от github, прочитайте о «компиляции», и вы будете знать, что делать. Я планирую сделать именно это, поэтому я уверен, что это можно сделать. Если вы не используете selectbox, вы можете просто удалить виджет из файла манифеста, и после making его CSS и код не должны попадать в сборку. Таким образом, вы можете легко уменьшить JQM до (примерно, я полагаю) примерно вдвое, если вы не используете какие-либо элементы формы, представления списков складных объектов и т. Д., А основы должны работать.

[править]

Возможно сжатие jQuery будет трудно , но вы можете попробовать удалить:

  • новая отложенная обработка ajax (если она не слишком глубоко интегрирована)
  • анимация
  • $. Css (возможно, я не уверен, использует ли JQM это или нет, но это большой кусок кода, и вы можете обойтись без него)

Лучший способ привести в порядок - заменить тело функции, которая, по вашему мнению, вам не нужна, на alert('damnit!'), чтобы проверить, действительно ли она вам не нужна;) Чтобы убедиться, что он остается работоспособным и стабильным, вам следует заменять только функции, связанные с именами. Старайтесь не заменять и не удалять любые замыкания или функции, которые возвращают функции.

И делайте это ПОСЛЕ ТОГО, КАК ТЕСТ проверен на правильную работу. Повторите тесты после испортить J *

1 голос
/ 30 января 2012

В последнее время я много тестировал с jQuery и jQuery Mobile, и я не заметил никаких проблем на моем ipad2. Я подозреваю, что многое из этого зависит от того, насколько сильно вы хотите поддерживать устаревшее оборудование. Мобильное пространство движется быстро, и я предсказываю, что это будет похоже на конец 90-х годов, когда кросс-браузерная поддержка (не говоря уже об ограниченных вариантах поддержки нескольких разрешений экрана) требовала путаницы сценариев и перенаправлений на основе таких вещей, как пользователь обнаружение агента.

...