0

Androidフォン用のPhoneGap-Appを構築しています。このようなメカニズムを使用して、ユーザーがデータを Web サービスに送信できるようにします。

$('#backdrop').slideDown('fast',function(){
  var data = prompt('Please enter your data');
  if (data){
    //process data
  } else {
   //go on
  }
});

それでも、私の携帯電話でこれをテストすると、要素が実際に表示されるにプロンプ​​トが表示されることがあり (約 80% のケースで推測します) $('#backdrop')、プロンプトが消えるまで要素が表示されるのを待ちます (そのため)。ブロック性質)。

これは私の本当に古くて遅い電話 (600MHz の HTC Wildfire S) が原因かもしれないと感じていますが、古くて遅い電話を持っているのはおそらく私だけではありません。これを修正する方法です。

これをjQuery手段で実際に修正できますか、それとも標準プロンプトを使用できず、自分で何かを構築する必要があることを意味しますか( promptsを使用するのは良い考えですか)? それとも、これは私が今気づいていない完全に異なるものですか?

jQuery のバージョンは 1.7.1、Phonegap/Cordova のバージョンは 1.9.0 です。

4

1 に答える 1

2

あなたのコードは正しく見えます。確認は、スライド アニメーションが完了するまで待ってから表示する必要があります。

しかし、何が起こるかというと、アニメーションのレンダリングが非常に悪く、slideUp関数は完成していますが、まだユーザーには見えていません。そしてconfirm、実行を停止します。

Javascript アニメーションは、モバイル デバイスではひどいものであることが知られており、お勧めできません。特に古いデバイスでは、耐えられません。代わりに CSS3 アニメーションを使用してみてください。jQuery Transitという jQuery プラグインがあります。これは、jQuery の関数と同じ構文を持ちますanimateが、アニメーションに CSS3 を使用します。

別のアドバイス: Phonegap を使用している場合はnavigator.notification.confirm、 old-plain の代わりに好むかもしれませんconfirm。これは、デバイスのネイティブの確認ダイアログを使用し (ユーザー エクスペリエンスが向上)、非ブロックであるためです。

于 2012-07-16T15:59:48.317 に答える