「assets」というディレクトリに、ブラウザのメイン レイアウトのさまざまな img タグで必要なファイルが 10 個ほどあります。
個別の小さな画像ファイルを取得するために、10 の個別の要求が送信されます。(最終的には、これを最適化して、すべての画像を 1 つにまとめた単一の画像シートを読み込む 1 つの要求を送信するだけにします)
ただし、すべてをロードできない場合があるため、ブラウザはタイムアウトするまで回転/ロードアイコンを表示するか、ロードしますが、順序/一致が間違っている (img タグが間違った画像を表示する) か、ロードされません。画像、ページを更新するたびに異なる動作
//first request gzips and loads the main layout, subsequent requests loads images
require('fs').readFile('assets/'+params.file, function(err, data) {
if(err) throw err;
if(params.file == 'layout.html') {
require('zlib').gzip(data, function(err, buffer) {
if(err) throw err;
output(buffer, params);
});
} else output(data, params);
});
function output(data, params){
switch(params.file.substring(params.file.length-3)) {
case 'tml': params.headers = {'Content-Encoding': 'gzip'};break;
case 'ico': params.headers = {'Content-Type': 'image/x-icon'};break;
case 'ttf': params.headers = {'Content-Type': 'application/x-font-ttf' }; break;
case 'otf': params.headers = {'Content-Type':'font/opentype'};break;
case 'png': params.headers = {'Content-Type':'image/png'};break;
case 'gif': params.headers = {'Content-Type':'image/gif'};break;
case 'peg':
case 'jpg': params.headers = {'Content-Type':'image/jpeg'};break;
default: params.headers = {};
}
params.headers['Set-Cookie'] = '';
params.responseOutput(data, params);
}
これは厄介な「閉鎖」の問題に少し似ているように感じますが、ここには forloops がなく、ブラウザーからの各画像要求が別の画像要求に干渉するべきではありません (..それでもそうです)。