2012-01-25 4 views
15

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

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

Я проверил это на IPod/iPhone и Android (HTC Magic) и очень медленно:

Запуск

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

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

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

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

Я уже удалил box shadow.

Update

Я удалить базу данных, оставив 444.7KB страницу общей. Теперь он работает быстрее на Android. Вокруг же, как у одного iPhone. Он все еще чувствует себя очень медленно.

Обновление 2

После this question, я перешел на latest jquery mobile build. Он улучшил переходы страниц для медленных устройств Android до ~ 2 секунд на переход. Выпуск версии 1.1 будет mid/late February.

+1

Javascript базы данных ?? вам следует рассмотреть возможность использования данных только по мере необходимости. –

+1

@ stian.net Как? Он содержит только 1800 строк. – PiTheNumber

+1

500kb в значительной степени подходит для мобильного приложения. –

ответ

11

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

  1. Get to deviceready faster.
  2. Свернуть свой код JS с помощью YUI Compressor
  3. Переместите теги скриптов в нижней части тега тела.

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

5

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

+6

Таким образом, решение не должно использовать jQuery, hm ... ok – PiTheNumber

+2

Использование jQuery в порядке, jQuery-mobile специально считается, что некоторые плохо реагируют на PhoneGap. Вот обсуждение того, почему: http://apachecordova.blogspot.com/2012/11/who-is-murdering-phonegap-its-jquery.html – garromark

+0

Более того, я имел в виду, например, не предоставление всего список, если будет показана только его часть. Вы не хотите показывать пользователю выпадающее меню, в котором есть 100 или более позиций! Если вы хотите, пожалуйста, сделайте это, он прокрутит пальцы до костей! –

4

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

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

$(document).bind("mobileinit", function(){ 
    $.mobile.defaultPageTransition="none" 
}); 
Смежные вопросы