Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This article hits pretty hard on jQuery Mobile. I'm considering it for an upcoming project and hadn't heard about it being such a steep tradeoff on performance. Can anyone who has played around with it comment?


I used it with PhoneGap. I had no issues with PhoneGap, and unlimited issues with jQuery Mobile.

Basically, jQuery Mobile wants your whole app to be on one page. You can either have one giant HTML file that has a bunch of divs representing multiple pages, or you can have several different HTML files and link them as normal. Then jQuery Mobile will take all of your anchor links and turn them into something that fetches that page's contents and inserts it into the DOM of the current page, instead of loading a new page. Then their "page transitions" are triggering hide and show actions on the various pages in the DOM.

This also makes registering event handlers awful. First, all of your javascript has to be in one file and it has to be included in every page that a user could possibly navigate to. This means that you can't just bind on document.ready like normal, because some of the elements you're binding to don't actually exist on the page until you try and navigate to the page.

Then, jQuery Mobile uses custom events to tell you when there's been a page transition. However, you can't put your event bindings in there, either, because then your event bindings will be reapplied every time the user navigates away from and back to that page - basically, every action will be applied multiple times. Terrible.

So this means that all of your bindings have to be live bindings. Oh, also, you need to make sure none of your elements on different pages have the same id since, in the long run, jQuery Mobile mashes them all onto one page.

Yeah, I may be a bit bitter.


I recently made a very small jquery mobile web app. It still feels like alpha software, I was on an extremely tight deadline so I persevered with it, the end result worked out ok. I would be interested in other javascript framework recommendations that perform better, however from my research they all seemed to be at a similar stage to Jquery Mobile, either that or they were abandoned. If I was spending a lot of time on a mobile web app I'd probably invest the time into writing it without the layer of abstraction.

Two big tips: 1. Turn off the transitions, they perform poorly and look out of place on most devices. 2. Don't use the navbar, it just doesn't work properly on all devices, I wasted so much time trying to work out the issues with it before changing my navigation scheme.


http://friendsdontletfriendsjqm.tumblr.com

Jokes aside, yes... it is that bad. I help out in the PhoneGap IRC channel, and I see more frustration surrounding jQuery Mobile in the PhoneGap community than any other single tool.

One of the core PhoneGap devs even tried to use it just so he could try and help people who come to us with issues relating to it. The experience was so bad I think he gave up on the idea.

I ended up making the above joke tumblr instead ;) I just try and steer people away from it.

Its performance and (in my opinion) visual appearance bely it's post 1.0 version number.


So what is a good alternative?


I've used IUI for mobile web apps. It seems faster than JQuery Mobile. See their site below.

http://www.iui-js.org/


Are you writing a mobile only webapp?

In that case you don't need it. It exist mainly to paper over the differences between the different browsers (i.e IE) which you don't care about.

You will find that HTML5 can do most of the nice things jQuery can.


I think you're confusing jQuery with jQuery Mobile. You're right about the former, but the latter exists to paper over the differences between different mobile platforms, as well as provide an HTML-based UI framework.


Yes. Don't use it. Not worth the performance hit.


There are ways to improve performance of JQuery Mobile. Tips and tricks. It's a delicate flower. For instance turn of transitions, hovers, etc. Here is a good thread: https://github.com/jquery/jquery-mobile/issues/4024#issuecom...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: