1

目的:Ajax検証呼び出しが戻るまでUIをブロックします。いくつかのダイアログまたはメッセージ付き。

問題:Spine / MVCの方法で、現在のビューの上部にあるHTMLコンテンツを追加し、削除することになっていますか?

中途半端な解決策:コントローラーの内部->モデルのajaxSuccess関数をバインドしてメッセージHTMLを削除し、モデルオブジェクトの保存に「読み込み中」のメッセージを追加します。

何か案は、?

ありがとう。

4

1 に答える 1

1

簡単な答え: 完全に避けるようにしてください。これはユーザーにとって迷惑であり、spine.js の中核となる哲学に反します。

http://spinejs.com/docs/introduction :

基本的価値観:

[...]

非同期インターフェイス - クライアント側のレンダリング機能を十分に活用していない JavaScript アプリケーションやフレームワークが多すぎます。エンドユーザーは、サーバーへのバックグラウンド リクエストが保留中かどうかを気にせず、メッセージやスピナーの読み込みを見たくありません。ユーザーは、ブロックされていないインターフェースと即時の対話を望んでいます。これを可能にするために、Spine はすべてをクライアント側で保存およびレンダリングし、サーバーと非同期で通信します。

ブロックを避けられない場合があることは理解しています。そのような場合、私は次のパターンに従います。

コントローラーで:

  1. ブロッキング オーバーレイ HTML を追加する
  2. 非同期であるがブロッキングが必要なモデル メソッドを呼び出す
  3. アクションが終了したことを知らせるイベントをモデルが発行するのを待ちます。validationDone

モデルでは:

  1. いつものように非同期メソッドを書く
  2. 成功ハンドラーとエラー ハンドラーの両方で、validationDoneイベントを発行します。
于 2012-08-20T14:41:23.773 に答える