インターネット上にこれらの質問がたくさんあることは知っていますが、私はすべての解決策(この質問のすべての答え)を試しましたが、どれもうまくいきませんでした。
PCのブラウザでサイトを実行すると、すべて問題ありませんが、電話に展開するとすぐに応答時間が非常に遅くなります。
FastClickを使用し、hoverDelayを0に設定し、自分のイベントをバインドしようとしましたが、結果は同じです。
Android4.1を使用しています。私が試したこと以外の助けをいただければ幸いです。
インターネット上にこれらの質問がたくさんあることは知っていますが、私はすべての解決策(この質問のすべての答え)を試しましたが、どれもうまくいきませんでした。
PCのブラウザでサイトを実行すると、すべて問題ありませんが、電話に展開するとすぐに応答時間が非常に遅くなります。
FastClickを使用し、hoverDelayを0に設定し、自分のイベントをバインドしようとしましたが、結果は同じです。
Android4.1を使用しています。私が試したこと以外の助けをいただければ幸いです。
JQMを高速化するには、トランジションをオフにする必要があります。
ひどいですが、iOSでも、JQMの移行はモバイルデバイスには遅すぎます。ハードウェアが速くなるまで数年待たなければならないのではないかと思います。これは、JQMチームが1.2でパフォーマンスを改善しようとしているにもかかわらずです。アプリの動作が遅くなることなく、トランジションを使用することはできません。
私は常にこれらの設定を使用して、jQuerymobileから最高のパフォーマンスを引き出します。
$.mobile.defaultPageTransition = 'none'
$.mobile.defaultDialogTransition = 'none'
$.mobile.buttonMarkup.hoverDelay = 0
同様に、JavaScriptを記述している場合は、「クリック」イベントにバインドしないでください。イベントがトリガーされるまでにさらに300ミリ秒の遅延があるため、モバイルデバイスではクリックが遅すぎます。
JQMを使用しているため、代わりに独自のクリックイベントを使用できます(vclick
内部ではイベントを使用しています)。touchstart
touchend
それでもまだ遅い場合は、クリックイベントで実際に何が起こっているのかを調べる必要があるかもしれません。おそらく、コードは可能な限り最適化されていません。
モバイルアプリケーションでこれを回避したい場合は、クリックイベントよりもタップイベントを使用する方がよいでしょう。
このコードスニペットは私のために働いた
var ua = navigator.userAgent,
event = (ua.match(/iPad|Android/i)) ? "touchstart" : "click";
$("button,a").bind(event, function()
{
$(this).trigger('click');
});