2012-05-06 7 views
1

この質問はおそらくJavascriptの機能が一般的に(そして私の特定のケースだけではなく)一般的にどのように動作するかを示していますが、...jQueryドキュメントのレディファンクションコール:順次または非同期?

私のドキュメントがどのように機能するのかを知りたいのですが···。様式化された形式では、それは次のようだ:

$(function() { 
    object1.init(); 
    object2.init(); 
    object3.init(); etc... 

(object2.initます)ときobject1.init()を返すだけで火災?あるいは、彼らはすべて非同期の方法で発砲するでしょうか?

更新:それらが連続して発射するならば、私はそれらを同時に動かすことができる方法はありますか(これはおそらく必要ありません)?

ありがとうございました。

+1

同時に発火させる方法はありません。 jQueryだけでなく、JavaScriptは並列プログラミングをサポートしていません。 – gdoron

+0

@gdoronこれを追加していただきありがとうございます。メイン列車が転がっている間にクロージャーが走り続けることができると思うのは間違いありません。たとえば、アニメーションは、関数が次のコード行に移動した後も、長時間実行されます。 – Nick

+0

いいえ、一度に1行のコード。アニメーション機能を使用しているのは、setTimeoutを使用していて、動作中のスレッドをロックしていないということです。しかし、それは一度に1つの操作です。 – gdoron

答えて

3

object2.init()は、object1.init()が戻ったときにのみ起動しますか?あるいは、彼らはすべて非同期の方法で発砲するでしょうか?

object2.init()は、object1.init()が戻ったときにのみ発生します。
すべての関数はキューに格納され、順番に実行されます。

同時に発火させる方法はありません。
jQueryだけでなく、JavaScriptは並列プログラミングをサポートしていません。

更新:答えはミニjQueryのソースコードになったので、私は、actuallコードを削除 ...)

// Handle when the DOM is ready 
ready: function(wait) { 
    ... 

// Call all callbacks with the given context and arguments 
fireWith: function(context, args) { 
    ... 

jQuery.Callbacks = function(flags) { 
    ... 

// The deferred used on DOM ready 
readyList, 


あなたはjQueryのソースコードを見ることができます

jQuery source code

2

Itの機能と変数を確認してくださいシーケンシャルに実行します。

init()のいずれかが非同期呼び出しを行う場合、明らかに非同期ですが、各関数(または実際には任意の行)が順番に実行されます。

関連する問題