Firefoxでのスクリプト読み込みの同時実行について

http://d.hatena.ne.jp/ladybug/20060926#p2

FireFox では、複数の SCRIPT タグがレンダリング対象に存在すると、そのすべての SCRIPT タグのソースコードを読み込み完了するまで、スクリプトエンジンは新しいスクリプトを実行しないようになっているようだ。また、レンダリングエンジンは読み込み終わったスクリプトをメモリ上で保持しているため、レンダリングと読み込みは完了しているがまだスクリプトエンジンにわたっていない、という状態のスクリプトを保持している SCRIPT タグを破棄しても、その SCRIPT タグで読み込まれたスクリプトは、きっちりスクリプトエンジンによって実行される。

えっ、と思ってしまった。Firefoxではちゃんと同時実行されてるような気がしてたので。

とりあえず、www.lingr.comに行って、以前作ったYahooページ数取得のブックマークレットを実行してみると、なるほど確かに返ってこない。チャットで発言があると返ってくるので、確かに指摘した動きになってるみたい。

ただ、おそらくOperaの場合と動作が違うのは、HTTPリクエストの発行自体は並行される、ということ。その意味ですべての処理が直列になるわけではなく、並列処理にする効果はある。たとえば複数ユーザのdel.icio.usポストを全部まとめてとってくる場合など、明らかに並列処理にした方が速い。もちろんサーバ側に怒られない範囲の同時実行数でね。

しかし、これだとレスポンスの遅い一つのJSONPリクエストにすべての処理が引きずられてしまうので、少なくともタイムアウトの実装は必須なのかもしれない。その前に「読み込みは完了していない状態のSCRIPTタグ」を破棄したら、スクリプトエンジンの実行がキャンセルされるのかどうか調べないと。