0

この投稿に示されているように、ビジーウェイトスピナーを使用するつもりです: jQueryでスピナーの読み込みを表示するにはどうすればよいですか?-実装が最もクリーンで簡単なため、次のようになります。

 $('#loadingDiv')
        .hide()  // hide it initially
        .ajaxStart(function() {
            $(this).show();
        })
        .ajaxStop(function() {
            $(this).hide();
        })
    ;

http://www.ajaxload.info/のアニメーションと 組み合わせてください

ページに複数の「ビュー」があります。つまり、ページのさまざまな部分を、対応するajax呼び出しで更新/変更できます。

#loadingDivこれを、いわば「アクション」の近くに「配置」したいと思います。どうすればいいですか?

頭に浮かぶいくつかのこと:

  1. いたるところに複数のdivを配置し、それらを非表示にして、対応するアクションに従って要素ごとに表示します-素朴で無駄に思えます
  2. <span></span>'保持'するために空を持ってください#loadingDiv-そのスパンで何かが起こったときにそれを示してください。私はこれを行う方法がわかりませんが...
  3. 他に何かありますか?

基本的に、単一のグローバルなものを使用するのではなく、位置的なビジー待機/シグナリングにアプローチする最善の方法はありますか?または、シングルグローバルオプションが推奨されます。つまり、「固定」divを使用するには、すべてのアクティビティのページの上部/中央に非表示が表示されますか?

あなたのほとんどがそのようなことに取り組むためにどのオプションを使用/好んだか、そして私がそれについて取り組むことをどのように提案するかを知りたいだけです...

4

1 に答える 1

1

考慮すべきことがいくつかあります。

リクエストの読み込み中にユーザーがページの他の部分を操作すると、ユーザーは問題を引き起こす可能性がありますか?

この場合、透明なオーバーレイのようなライトボックスでUI全体をブロックします。

アクションは小さくて小さく、アプリケーションの他の部分とは無関係ですか?

ローカルに配置されたスピナーを使用します。ボタンの場合は、ボタンの内容を例から変更します。スピナーで「行を保存」から「保存...」へ。

リクエストが重要であるが、ユーザーを混乱させたい場合で、GUIが複雑な場合

画面の一部のみをオーバーレイできます。http://sfiddle.net/Lv9y5/39/

ローカルアップデート、ノンブロッキング方式

jQuery.positionを使用して、Spinnerオブジェクトを最初から作成します。.show(node)メソッドと.hide()メソッド、そしておそらく.setMessage(txt)が必要です。showメソッドに渡されるDOM参照は、ユーザーがクリックした要素です。この参照を使用して、jQuery .position()を使用して、読み込みdivの絶対位置を決定できます。ローディングdivは、BODY要素の後に配置する必要があります。

于 2011-08-07T10:53:13.660 に答える