16

Android の WebView に表示される Web アプリケーションがあり、古い Android タブレットで実際に対処する必要があるパフォーマンスの問題があります。

  • JavaScriptのドラッグにiScroll-liteを使用しています
  • ハードウェア アクセラレーションを true に設定し、レンダリングの優先度を高く設定すると、WebView は 80 ミリ秒間隔で 1 つの MOVE タッチ イベントのみを通過させます。

私たちにできることは他にありますか?
iScroll-lite に代わるより高速な代替手段はありますか?

何がそんなに遅いのか正確にはわかりません。たとえば、1 GHz の Sony Erricson、Android 2.3 の 512 MB RAM のスマートフォンではスムーズに動作しますが、タブレットの Qualcomm 1 GHz、Android 4.0 の 512 RAM ではドラッグを行い、実際に結果が表示されるまで待つ必要があります。私が見る唯一の違いは、Android のバージョンと画面の解像度です。

4

5 に答える 5

2

オーバーフローをautoに設定してdivを使用し、この修正を適用して要素をスクロールできるようにするのはどうですか?

http://chris-barr.com/index.php/entry/scrolling_a_overflowauto_element_on_a_touch_screen_device/

短い抜粋:

function touchScroll(id){
    var el=document.getElementById(id);
    var scrollStartPos=0;

    document.getElementById(id).addEventListener("touchstart", function(event) {
        scrollStartPos=this.scrollTop+event.touches[0].pageY;
        event.preventDefault();
    },false);

    document.getElementById(id).addEventListener("touchmove", function(event) {
        this.scrollTop=scrollStartPos-event.touches[0].pageY;
        event.preventDefault();
    },false);
}
于 2013-01-08T03:14:36.980 に答える
2

私の提案は、ドラッグを自分で書くことです。難しくありません。コードの主要部分は次のようになります。

var yourDomElement = document.getElementById("demoDrag");
yourDomElement.addEventListener("touchstart", function (e) {
    e.preventDefault();
    //todo
});
yourDomElement.addEventListener("touchmove", function (e) {
    //todo: 
});
yourDomElement.addEventListener("touchend", function (e) {
    //todo
});

多くのサンプル コードがここにあります(例: /assets/www/scripts/novas/framwork/nova.Carousel.js、また scroller.js)。サンプル コードを読んで、独自の「ドラッグ」を作成する方法を学習してください。

それでもわからない場合は、当社のチームに連絡してタスクを完了してください。私たちは非常に優れたパフォーマンスの phonegap アプリを作成しています。

于 2013-01-08T02:28:57.173 に答える
2

結局、Javascriptではないかもしれません。Android WebView には、予期しないパフォーマンスの問題が発生する傾向があります。

不要な CSS をすべて無効にして、パフォーマンスが向上するかどうかを確認してください。その場合は、CSS スタイルを繰り返し追加して原因を突き止めることができます。

また、いかなる種類のアニメーション GIF も使用しないでください。私たちの経験では、これにより (奇妙なことに) パフォーマンスが大幅に低下します。

于 2013-01-01T13:58:40.087 に答える
1

iPad(2/3)のphonegapアプリでiScrollをスムーズに動作させようとしましたが、うまくいきませんでした。すべてのスタンドアロンの例が非常にスムーズに実行されたにもかかわらず、パフォーマンスが許容範囲に近づきました。私たちは最終的に-webkit-overflow-scrolling:touchそれを調べましたか?Androidでこれが必要なのはわかっているので、iOS6と同じくらい良いかどうかはわかりませんが、iPadでは魅力的に機能しました.

于 2013-01-05T03:55:40.750 に答える