Как ускорить jquery mobile / phonegap? - PullRequest
15 голосов
/ 25 января 2012

У меня есть небольшое веб-приложение.Семь страниц, 3,6 КБ index.html и 855,5 КБ.Единственная странная вещь, которую я имею, - это база данных (~ 500 КБ) в Javascript со многими строками, например:

$.data(db,'Aarstraße',['34236:1','34246:2','34270:4','34290:6',...]);

Я тестировал ее на iPod / iPhone и Android (HTC Magic), и она очень медленная:

Запуск

  • iPhone: 14 секунд
  • Android: 21 секунда

Простой переход страницы (слайд)

  • iPhone: 3-4 секунды
  • Android: 4-6 секунд

Как я могу сделать это быстро?

Я уже убрал поле shadow .

Обновление

Я удаляю базу данных, оставляя всего 444,7 КБ страницы.Теперь он работает быстрее на Android.Примерно так же, как один iPhone.Он все еще чувствует себя очень медленно.

Обновление 2

После этого вопроса я переключился на последнюю мобильную сборку jquery ,Это улучшило переходы страниц для медленных устройств Android до ~ 2 секунд за переход.Выпуск версии 1.1 будет середина / конец февраля .

Ответы [ 3 ]

11 голосов
/ 25 января 2012

Есть несколько вещей, которые вы можете сделать:

  1. Получить к устройству уже быстрее .
  2. Сверните JS-код, используя YUI Compressor
  3. Переместите теги сценария в конец тега body.

Как вы уже упоминали, вы переместили базу данных из уравнения, которое, вероятно, занимало большую часть времени при запуске.

5 голосов
/ 27 января 2012

Что вы делаете с jQuery-mobile? Его производительность очень плохая, вы никогда не должны вызывать это на элементах большего размера, чем требуется. См. это обсуждение jquery-mobile для подробностей. Он выполняет очень большое количество операций поиска DOM, потому что работает путем изменения дерева DOM. Что касается моих тестов, то он работает слишком медленно даже в настольном браузере.

4 голосов
/ 15 мая 2012

попробуй без переходов.Даже в jQuery 1.1 переходы страниц могут быть очень мимолетными и медленными на iPhone.

Чтобы удалить переходы страниц глобально, просто добавьте следующее в jqm.glocal.config.js

$(document).bind("mobileinit", function(){
  $.mobile.defaultPageTransition="none"
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...