2012-11-09 10 views
5

Jestem właśnie w trakcie wydawania mojej pierwszej aplikacji w JQM. Zasadniczo, dynamiczne strony z odsłonami. Nic nadzwyczajnego pod względem wzornictwa. Więc naprawdę podoba mi się podstawowy wygląd JQM.jquery mobile alternatywy (i jakie jest wąskie gardło?)

Jeszcze nie uruchomiłem tego za pomocą Phonegapa. Testuję go jako aplikację internetową na firefoxie na moim pulpicie i jest naprawdę miły i działa sprawnie. Przetestowałem to jako webapp na safari na moim iPhone 3GS i jest całkowicie bezużyteczny: migotanie ekranu, przejścia przypominające mi Mosaic na modemie 33.6K.

Widziałem na stackoverflow, że istnieje wiele poprawek, które poprawiają JQM, takich jak nie używanie przejść. Ale o co chodzi?

Jakie jest wąskie gardło? Czy to samo JQuery i obsługa IE? Przepraszam, nie mogę się doczekać wydania JQuery 2.0.

Widziałem, że niektórzy ludzie zalecają używanie zepto.js jako alternatywy. Ale zepto.js nie obsługuje css JQM. Czy istnieje łatwe rozwiązanie do korzystania z ZEPTO i nie trzeba przerabiać podstawowego projektu, który zapewnia JQM?

Nadal nie chcę być natywny, ponieważ chcę, aby moja aplikacja działała na IOS i Androida bez konieczności uczenia się Obj-C i powrotu do Javy.

Było wiele dyskusji na ten temat, ale ostatni, który widziałem był w czerwcu.

Czy są nowe alternatywy? Jeśli Jquery jest wąskim gardłem, czy możliwe jest uzyskanie takiego, który jest pusty od niczego, co nie jest ukierunkowane na IOS/Androida?

Dziękuję.

Odpowiedz

5

Ideą JQM jest nie tylko kierowanie na system iOS/Android, ale także na wszystkie platformy, więc musisz tworzyć kompozycje, których nie potrzebujesz, jeśli wybierasz tylko system iOS - wcześniejsze przejścia JQM 1.1 (o wiele lepsze) zostały usunięte z powodu Androida, jak sądzę, ponieważ tak bardzo zawodziły.

Jeśli szukasz wąskich gardeł, myślę, że renderowanie elementów na kliencie wymaga czasu. Załóżmy, że masz element listy:

<li><a href="some">link</a></li> 

Które JQM zmieni się

<li data-corners="false" data-shadow="false" data-iconshadow="true" data-wrapperels="div" data-icon="arrow-r" data-iconpos="right" data-theme="c" class="ui-btn ui-btn-icon-right ui-li-has-arrow ui-li ui-btn-up-c"> 
    <div class="ui-btn-inner ui-li"> 
     <div class="ui-btn-text"> 
      <a href="index.html" class="ui-link-inherit">Acura</a> 
     </div> 
     <span class="ui-icon ui-icon-arrow-r ui-icon-shadow">&nbsp;</span> 
    </div> 
</li> 

Ponieważ odbywa się to na kliencie dla każdego elementu listy, rzeczy potrzeba czasu do renderowania i elementy, które doskonale działają gładkie Pulpit nagle potrzebuje 2-3 sekund, aby renderować na cholernym Androidzie.

Najpierw obejść, aby wysłać enhanced HTML i nie trzeba dzwonić pod numer trigger("create") Możesz utracić powiązania elementów, wykonując to, lub będziesz musiał zmienić JQM, aby zapewnić tryb związania zdarzeń, który robię, gdy potrzebne.

Innym pomysłem byłoby przechowywanie widgetów libararies jako konfigurowalnego ulepszonego znacznika. Więc masz bibliotekę listview, która ma wszystkie odmiany listitemów przechowywanych jako szablony w rozszerzonej formie. Przeglądając listę, wystarczy wybrać element listy z biblioteki, dodać dane dynamiczne i gotowe.

Oba wymagają dużo skrzypiec, ale można je łatwo ustawić w postaci niektórych widżetów (przycisków, grup kontrolnych) i już oszczędza mnóstwo czasu renderowania.

Mam nadzieję, że jest to dobry wskaźnik, abyś mógł zacząć.

+0

Dziękuję. To naprawdę doskonały wskaźnik. –

+0

Nie wiem, czy mogę również zastąpić niektóre .on ("kliknięcie" przez ich odpowiednik onclick(), ale ja też to sprawdzę.) Nie jestem pewien, czy będzie to miało znaczenie dla ekranu migającego podczas wywoływania $ .mobile .changePage(), ale twoje dane wejściowe sprawiły, że chcę kontynuować eksplorowanie JQM.Zapytam tutaj jakąkolwiek poprawkę –

+1

"biały błysk" został wprowadzony w jqm 1.1. wcześniej, kiedy zmieniałeś układ, JQM musiał najpierw przewinąć z powrotem na górę bieżącej strony, a następnie wstawić nową stronę w css: top = 0 bez górnej krawędzi przewijania, nowe strony zostaną wstawione w aktualnym położeniu przewijania, nowy biały błysk jest po prostu "zakryty" JQM podczas przewijania JQM do górny za białą kurtyną: – frequent