現在、jQuery で非同期関数呼び出しを試していて、行き詰まっています。次の例を検討してください。
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
</head>
<body>
<script type="text/javascript">
f = function() {
alert("f1");
var x = 0;
for (var i = 0; i < 2500000000; i++) {
x++;
}
alert("f2");
}
$.when( f() ).done(alert("done"));
alert("moving on...");
</script>
</body>
</html>
「f1」、「moving on...」、「f2」、「done」の順序でアラート メッセージが表示されることを期待します10 秒間、「f2」、「done」、「moving on...」では何も起こりません。これは私には非同期に見えません。私は何か間違ったことをしていますか、それともこれは意図した動作ですか? もしそうなら、when関数とコールバックを使用することの全体的なポイントは何ですか? 関数 f を同期的に呼び出すことはできませんか?