websocket v.s. HTTP1.1 keep alive
http://bloga.jp/koma/ws/100images/wspipeling.html
100個の画像をwebsocketでダウンロードして表示する速度を測定するページだそうです。
対応は現状でChromeのみ。
残念ながらうちのChrome4.0.249.89では動きませんでした。
「画像をたくさん含むようなサイトを見ようとすると、画像のダウンロードに時間がかかって中々開かない(・ω・)」という経験をされた方は多いはずです。で、この要因の一つとして「httpでは、前の画像のダウンロードが終わらないと、次の画像のダウンロードが始まらない(待ってる時間だけ時間を食っている)」というのがあるのでは?と考えました。
ところで、このwebsocketの目的は、多くの画像を含むページでダウンロードに時間がかかるのを何とかしたい、ということだそうですが、
HTTP1.1にはkeep aliveの規格がありますので、
通常のウェブページでは、1つのTCPコネクションで4つから8個ずつ、画像やcss、jsファイルをダウンロードするはずです。
だから、websocketを使って1つのコネクションで同時ダウンロードを試みても、大して差は出ないはずなんですが。。。
たしかにJavaScriptでnew Image()やcreateElement(‘img’)して、
いわゆる”先読み”した時はHTTPのkeep aliveが使えないため、たしかに大きな速度向上は期待できますが。。。
以前CSSを利用して画像を統合する方法を書きましたが、
よく考えれば、「画像ファイルのヘッダ部分」の削減が出来るだけで、よほどの数を統合しないと、転送量削減のメリットは殆どないかもしれません。