rhomobile + jQuery Mobile を使用してモバイル アプリケーションを開発しました。
「Android用」の携帯電話に展開すると、非常に遅くなります。
理由を見つけるのを手伝ってくれませんか?
rhomobile + jQuery Mobile を使用してモバイル アプリケーションを開発しました。
「Android用」の携帯電話に展開すると、非常に遅くなります。
理由を見つけるのを手伝ってくれませんか?
使用するラッパー(Rhomobile / Phonegap)に関係なく、jQuery mobileのAndroidデバイスでのパフォーマンスは非常に悪くなります(主に2.Xですが、4つ以上のバージョンに関連しています)。
この問題が発生しているデバイス(主にAndroid)では、何もできません。これはブラウザの制限です。Androidモバイルブラウザは、移行が不十分なことで有名です。
iOSでは、いくつかの問題に注意する必要があります。まず第一に、Webviewは、Just-in-timeコンパイル機能がないため、MobileSafariよりも遅いJavascriptによって妨げられます。Rhodes固有ではありません。同じJavascriptは、WebviewではMobile Safari自体よりも実行速度が遅く、回避することはできません。
第二に、iOSはトランジションにハードウェアアクセラレーションを自動的に使用しません。translateZ(0)のようなnull 3D変換を使用することにより、ブラウザーを「ヒント」にしてハードウェアアクセラレーションを使用できます。これに関する詳細情報を検索してください。これを行うために適切な要素を選択することには少し芸術があります。これは、これを多数の要素に適用するのにコストがかかる可能性があり、通常、要素階層全体に適用する必要がないためです。
ただし、トランジションはさまざまなモバイルデバイスでまだ適切に処理されていないため、トランジションを使用しないことをお勧めします。IMO、とにかく移行は非常に優れたユーザーエクスペリエンスではありません。トランジションは、主に遅いソフトウェアからユーザーの注意をそらすために使用され、皮肉なことに、プロセスにより多くの遅延をもたらします。
Rhodesアプリでトランジションを簡単に無効にして、試してみることができます。Rhodesアプリケーションのappフォルダー内のlayout.erbファイルには、次のものがあります。
// Uncomment these options in case of performance problem in pages transition
//$.mobile.defaultPageTransition = 'none';
//$.mobile.defaultDialogTransition = 'none';
//$.mobile.ajaxEnabled = false;
//$.mobile.pushStateEnabled = false;
//$.mobile.loadingMessageDelay = 50; // in ms
コメントを外して試してみてください。