コールバック、あなたが理解できる方法でそれを試してみましょう。
- まず、関数を実行せずに変数に割り当てる方法を理解する必要があります。
これは、あなたが機能を周りに渡すことができますとだけしたいときにそれらを実行し、私は変数に関数を渡すことができますどのように相続人の例と、それを実行していない:
a = function(){}
これは小さな一例です最も一般的なのは、a()
のような関数を呼び出して、()
を追加すると、関数に実行を指示します。
- 今、あなたはあなたが別の関数にこれらの変数を渡すことができることを理解し、まだ
以下の例を、それらを呼び出すべきではありませんが、あなたがそれを実行しながら、上記の機能a
に関数を渡す方法を示します。
b = function(){}
b(a);
- 次のステップは、これらの匿名関数がで割り当てられていない
別の関数に渡しながら、関数を変数に割り当てることができます無名関数を作成することができることですそれを書くのはポイントですが、外側の関数スコープ内で解析されたときに割り当てられます。
私は理解するのが少し面倒ですが、うまくいけばその例はそれをクリアします。
a(
function(){}
);
上記離間a
から今匿名関数であり、そして唯一の外側の機能すなわち、b
内の変数に割り当てられb(a)
例と同様です。
jQuer'ies APIは、jQueryコアとユーザーコードとの使い分けが簡単で、匿名関数に大きく依存しているため、jQueryのメインコードに大きく依存する必要はありませんが、コードに接続するjQuery。
機能の内部および外部にデータを渡すの同様の手段を使用する関数の例はとても似ています:
JoinUser = function(Firstname,Lastname,callback)
{
Fullname = Firstname + " " + Lastname;
callback(Fullname);
}
JoinUser("Robert","Pitt",function(Fullname)
{
alert(Fullname); //Robert Pitt
})
上記の例では唯一のjQueryのスタイルが働く大体方法を示していますが、ほとんどありませんコールバックの重要な利点はAjaxです。
そのデータは、例えば、受信されるまで
アヤックスは、JavaScriptのスクリプトを停止することができます
Result = RequestPage("Contacts");
アヤックスは、コーディングがさらに下に予想されるため、結果を返すためにRequestPage
を待たなければならこの行を見ているとき、この値が必要なので、JavaScriptが続行される前にサーバーから返されるデータを監視する必要があります。これは数秒であり、UIが異常動作する原因になります。
これを回避する方法は、コールバックを関数に送信して、アプリケーションの残りの部分を処理したいときに呼び出すように指示することです。
RequestPage("Contacts",function(){});
ので、今のJavaScriptは必要なタスクを実行するページの下続け、RequestPage
関数内で、それはそうのようにレイアウトされます:
function RequestPage(page,callback)
{
//..
request.oncomplete = callback;
//..
}
アプリケーションの残りが完了しました。この方法を結果が出たら、UIを変更することができます。
これはローダーを使用して作業状態を複製する理由です。
jQueryがjavaScriptのこれらの要素をどのように利用するのか理解していただければ幸いです。アプリケーションの開発に役立ちます。
私は、この問題はデータを取得するのにかかる時間が原因であることに気付きました。とにかく、次の部分に移動する前にPOSTデータを受信するまで私のプログラムを待たせることができますか? – djq