我注意到以下内容:
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();
});
});
index.jade
- each path in imagesPaths
span
img(src="#{path}")
我收到此网络信息。请注意,iamges正在以同步呈现。此外,加载时间相当低。
问题1 :如何异步强制渲染图像?
问题2 :为什么有时nodejs呈现图像异步和其他同步?我认为nodejs将异步呈现一堆图像,无论图像src属性内部是什么。
答案 0 :(得分:1)
真正的区别在于对资源位置的请求路径:
每个远程请求都会通过互联网,并且无法保证到达时的到达顺序相同。
每个本地请求都会立即处理 ,从而产生同步错觉,同时也保留了请求的顺序。
证明:尝试在数组中间添加非常大的图像o(N * 10MB)或o(100MB)(例如http://www.nasa.gov/sites/default/files/thumbnails/image/hs-2015-02-a-hires_jpg.jpg)的本地路径,并查看图像完成最后加载。