1

Phonegap を介して Galaxy Tab デバイスで実行しようとしている jQuery Mobile アプリケーションがあります。すべてが期待どおりに機能しますが、一連のページ間を移動するためにスワイプを使用すると、ひどくラグが発生します。

私は実際に knockoutJS と次のようなカスタム バインディングを使用しています。

<!-- ko foreach: factors -->
<div data-role="page" data-bind="attr: { id: id }, swipe: $data"> 
    <!-- some content here that I don't *think* is the problem -->
</div>
<!-- /ko -->

ko.bindingHandlers["swipe"] = {
    init: function (element, valueAccessor) {
        var qe = $(element);
        var val = ko.utils.unwrapObservable(valueAccessor());
        qe.bind("swipeleft", function () {
            var next = qe.next("div[data-role='page'][data-bind*='swipe']");
            if(next.length) {
                $.mobile.changePage(next, {
                    transition: "slide"
                });
            } else {
                qe.effect("shake");
            }
        });
        qe.bind("swiperight", function () {
            var prev = qe.prev("div[data-role='page']");
            if(prev.length) {
                $.mobile.changePage(prev, {
                    transition: "slide",
                    reverse: true
                });
            } else {
                qe.effect("shake");
            }
        });
    }

ページからほとんどすべてのコンテンツを削除しようとしましたが、役に立ちませんでした。slideトランジションをandに置き換えてみましたnoneが、少しは役に立ちましたが、パフォーマンスは依然として許容できないほど遅いです。

これをうまく機能させるためのトリックやヒントはありますか?

4

1 に答える 1

2

これにより、少なくとも部分的な解決策が得られました。

jQuery Mobile 1.2、PhoneGap 2.1、および Android 4.0.4 でスワイプが正しく機能しない

バインドvmousemouseして設定するとpreventDefault、スワイプがはるかにうまく機能するように見えますが、同時にスクロールが無効になります!

于 2013-01-02T21:17:51.887 に答える