Какой у вас был опыт работы с RhoMobile + JqueryMobile + KnockoutJS?

1

Моя команда и я занимаемся созданием нескольких мобильных приложений (BlackBerry, Android, iOS) для нашей организации с использованием RhoMobile + JqueryMobile + KnockoutJS. Опыт разработки является приемлемым с учетом состояния кросс-платформенной разработки мобильных приложений сегодня. Разочарование начинается при использовании приложения на самих мобильных устройствах. В настоящее время проблемы с производительностью - это больший момент для нас. Я не хочу, чтобы это было напыщенностью, но я хотел бы знать, что сделали другие, чтобы облегчить проблемы с производительностью. В частности, проблемы с производительностью на устройствах BlackBerry. Я пробовал решения, рекомендованные в документах RhoMobile. Возможно, есть и другие подсказки, которые сообщество может предложить. Я ценю любые отзывы, которые вы можете предоставить.

Теги:
jquery-mobile
blackberry
ios5
rhomobile

2 ответа

1
Лучший ответ

У меня только есть опыт работы с JQuery mobile, и, хотя мне нравилось быстрое развитие, это делает возможным, если бы у меня было время, я бы всегда кодировал родное приложение. Мобильные приложения JQuery лучше всего работают на устройствах iOS благодаря поддержке Safari CSS3. Анимации, такие как слайд и т.д., Довольно развязаны в браузере Android и совершенно беспорядочны в браузере Blackberry.

Кроме того, JQuery mobile работает в основном без переключения страниц. Каждый раз, когда вы запрашиваете новую страницу (через гиперссылку или что-то еще), она извлекает страницу через запрос AJAX и вставляет ее в текущую страницу DOM (вы можете явно запросить, чтобы этого не произошло, но тогда вы не можете "скользить" на другой страница). Эта форма навигации вызывает проблемы после длинной цепочки навигации. Не говоря уже о том, что вы должны быть очень осторожны, ни один из двух элементов в вашем приложении не имеет одинакового идентификатора.

Я сделал это мобильное приложение JQuery в качестве демонстрации для школьного проекта, поэтому он служил целям, которые мне нужны: быстрое развитие, и это послужило доказательством концепции.

Тем не менее, для моего собственного продукта компании мы разрабатываем мобильные приложения, и для этого я никогда не буду использовать ничего, кроме родных приложений. Для разработки требуется намного больше времени, поэтому это зависит от вашего требования.

Дополнение к вашему комментарию:

Ничто из того, что JQuery Mobile делает, не может быть сделано JQuery. Но, используя jquery, если вы добавляете анимацию CSS3, используйте стиль навигации с одним DOM и т.д., Вы будете испытывать те же проблемы. Проблема не в JQuery mobile. Проблема в том, что несколько мобильных браузеров могут обрабатывать эффекты, которые использует Jq mobile. Как я уже сказал, iPhone делает добро. Отчасти это связано с реализацией Safari 3 CSS 3 и, главным образом, из-за того, что iOS приоритизирует потоки пользовательского интерфейса над фоновыми работниками.

  • 0
    Это было в ответе на вопрос в названии (каков ваш опыт ..), а не в теле (смягчение проблем с производительностью). Было слишком долго оставлять комментарий: /
  • 0
    Мы отключили анимацию по той причине, которую вы описываете. Замечание Ajax также является хорошим моментом.
Показать ещё 6 комментариев
1
  1. Удалите box-shadow и box-shadow text-shadow из CSS, это делает страницы довольно медленными.
  2. Вы также можете установить -hover и -down же, как их производные, чтобы браузер не перерисовывал страницу при нажатии элемента (например, ссылку listview) при прокрутке (это прокручивалось мое устройство Android 2.3 намного более плавное).

Чтобы удалить тени:

.ui-shadow,
.ui-btn-up-a,
.ui-btn-hover-a,
.ui-btn-down-a,
.ui-body-b,
.ui-btn-up-b,
.ui-btn-hover-b,
.ui-btn-down-b,
.ui-bar-c,
.ui-body-c,
.ui-btn-up-c,
.ui-btn-hover-c,
.ui-btn-down-c,
.ui-bar-c,
.ui-body-d,
.ui-btn-up-d,
.ui-btn-hover-d,
.ui-btn-down-d,
.ui-bar-d,
.ui-body-e,
.ui-btn-up-e,
.ui-btn-hover-e,
.ui-btn-down-e,
.ui-bar-e,
.ui-overlay-shadow,
.ui-shadow,
.ui-btn-active,
.ui-body-a,
.ui-bar-a {
    text-shadow: none;
    box-shadow: none;
    -webkit-box-shadow: none;
}

Чтобы сделать классы -hover одинаковыми, вам нужно будет изменить такие стили:

.ui-btn-hover-a {
    border: 1px solid       #000 ;
    background:             #444444 ;
    font-weight: bold;
    color:                  #fff ;
    text-shadow: 0  -1px  1px  #000 ;
    background-image: -webkit-gradient(linear, left top, left bottom, from( #666 ), to( #444 )); 
    background-image: -webkit-linear-gradient( #666 , #444 ); 
    background-image:    -moz-linear-gradient( #666 , #444 ); 
    background-image:     -ms-linear-gradient( #666 , #444 ); 
    background-image:      -o-linear-gradient( #666 , #444 ); 
    background-image:         linear-gradient( #666 , #444 );
}

Чтобы быть таким же, как и производным (в данном случае это будет .ui-btn-up-a):

.ui-btn-hover-a {
    border: 1px solid       #222 ;
    background:             #333333 ;
    font-weight: bold;
    color:                  #fff ;
    text-shadow: 0  -1px  1px  #000 ;
    background-image: -webkit-gradient(linear, left top, left bottom, from( #555 ), to( #333 )); 
    background-image: -webkit-linear-gradient( #555 , #333 ); 
    background-image:    -moz-linear-gradient( #555 , #333 ); 
    background-image:     -ms-linear-gradient( #555 , #333 ); 
    background-image:      -o-linear-gradient( #555 , #333 ); 
    background-image:         linear-gradient( #555 , #333 );
}

Вы также можете сделать это для классов -down которые запускаются при возникновении события tap на элементе:

.ui-btn-down-a {
    border: 1px solid       #222 ;
    background:             #333333 ;
    font-weight: bold;
    color:                  #fff ;
    text-shadow: 0  -1px  1px  #000 ;
    background-image: -webkit-gradient(linear, left top, left bottom, from( #555 ), to( #333 )); 
    background-image: -webkit-linear-gradient( #555 , #333 ); 
    background-image:    -moz-linear-gradient( #555 , #333 ); 
    background-image:     -ms-linear-gradient( #555 , #333 ); 
    background-image:      -o-linear-gradient( #555 , #333 ); 
    background-image:         linear-gradient( #555 , #333 );
}

Вот ссылка на неминифицированную версию jQuery Mobile 1.0 CSS style-sheet: http://code.jquery.com/mobile/latest/jquery.mobile.css

  • 0
    Спасибо @Джаспер. Это немного помогло, но не совсем на BlackBerry.
  • 0
    @Jasper: если вы хотите что-то добавить в свой список, я обнаружил, что добавление элементов в селекторы внутри JQM также в некоторой степени помогает. Поэтому вместо ": jqmData (some =" thing ") попробуйте переключиться на" div: jqmData (some = "thing")
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню