私は次のように気づいた:なぜapp.renderはローカルファイルパスを使用してイメージを同期して読み込みますか? - NodeJS
- 私は別のウェブサイトこのようなでホストされている画像URLの配列レンダリングする場合:
index.js
MongoClient.connect('mongodb://localhost:27017/sample', function(err, db) {
db.collection('collSample').findOne({ somevar: 'somevalue' }, function(err, doc) {
assert.equal(null, err);
res.render('index', {
title: 'render images' ,
imagesPaths: doc.images.`**URLs**`
});
db.close();
});
});
を index.jade
- each path in imagesPaths
span
img(src="#{path}")
このネットワーク情報はChromeデベロッパーツールから入手できます。
index.js
MongoClient.connect('mongodb://localhost:27017/sample', function(err, db) {
db.collection('collSample').findOne({ somevar: 'somevalue' }, function(err, doc) {
assert.equal(null, err);
res.render('index', {
title: 'render images' ,
imagesPaths: doc.images.`**localPath**`
});
db.close();
});
});
:私はとlocalYこのように保存されている画像を使用した場合、画像が非同期
- をレンダリングされているかに注目してくださいしかし、 index.jade
- each path in imagesPaths span img(src="#{path}")
私はこのネットワーク情報を取得します。 iamgesはと同時ににレンダリングされていることに注意してください。また、の読み込み時間はかなり低いです。
質問1:どのように私は非同期的に画像をレンダリングする強制することができますか?
質問2:なぜnodejsが画像を非同期にレンダリングし、他のものが同期するのですか?私は、nodejsが、イメージsrc属性の内側に何があるかにかかわらず、イメージの束を非同期的にレンダリングすると考えました。
Node.jsはイメージをレンダリングしません。あなたのブラウザはそうです。 – Cristy
あなたはまったく正しい@Cristyです。これは、[ここ](https://developers.google.com/web/tools/chrome-devtools/profile/network-performance/understanding-resource-timing)から抽出された画像がキューに入れられる理由です:_Chrome HTTP/2を使用しない限り、ホストごとに最大6つのTCP接続( – thorstorm
)を適用します。 – Cristy