0

Phonegapでラップされた標準のHTMLアプリを考えてみましょう。通常の「クリック」または「タッチ」イベントにより、サーバーにリクエストが送信され、場合によってはフォームデータがサーバーにPOSTまたはGETされ、WebKitクライアントが応答を待機します。次にそれをレンダリングします。

これらのラウンドトリップにわずかな遅延がある場合(たとえば、1 / 4-2秒程度でも)、ユーザーは、クリックしてから応答がレンダリングされ始めるまでの間に「何も起こらない」ように見えることに混乱します。

Phonegapには、短い応答時間や長い応答時間を処理するための標準的な方法がありますか?私はすべての標準的なHREFクリックをAJAX呼び出しに変更することを試みました。ここで、AJAX呼び出しはJavaScriptがページ上の既存のDIVに接続する小さなHTML部分を受け取ります。遅延中は、「読み込み中」のインジケーターを表示できます。

このアプローチは必然的にページ上のJavascriptに大混乱を引き起こし、多くの場合、将来のクリックを完全に機能しなくなります。

私はこれに対する標準的なアプローチが何であるか非常に興味があります。これは非常に一般的なユースケースのようです。

4

1 に答える 1

2

「標準的な方法」自体はありませんが、多くのアプリ(ネイティブアプリを含む)は、ブロッキング「スピナー」を使用して、何かが読み込まれていることをユーザーに通知し、サーバーからのフェッチが行われている間、「ページ」との対話を防ぎます。

jQuery Mobileのようなフレームワークには、この機能が組み込まれています(ただし、jQuery Mobileの使用をお勧めしているわけではありません)。

私は自分のアプリでこれにjQueryプラグインを個人的に使用しています:http://malsup.com/jquery/block/

まだjQueryを使用していない場合は、blockUIプラグインを取得するためだけに開始したくないので、独自のプラグインを考案することをお勧めします。本当に必要なのは、データがフェッチされている間の相互作用をブロックするように絶対に配置された大きなz-indexを備えたフルスクリーンdivです。そのdiv内に、アクティビティが発生していることを示すスピナーまたはメッセージを配置し、フェッチが終了したときにそれを再び取り除くことができます。

于 2012-06-15T23:06:15.150 に答える