84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
最近在看《深入浅出Node.js》,有一段提到
展开介绍路径分析和文件定位之前,我们需要知晓的一点是,与前端浏览器会缓存静态脚本文件以提高性能一样,Node对引入过的模块都会进行缓存,以减少二次引入时的开销。不同的地方在于,浏览器仅仅缓存文件,而Node缓存的是编译和执行之后的对象。
那浏览器为何不也缓存编译执行后的对象?
走同样的路,发现不同的人生
Node对引入过的模块都会进行缓存 和你说的编译执行后的对象不是一回事吧。 浏览器也对静态文件缓存呀,如果服务器返回304状态码 就会用缓存中的文件呀。
Node对引入过的模块都会进行缓存
304
我觉得朴灵老师说的“Node对引入过的模块都会进行缓存,以减少二次引入时的开销” 指的是在一次运行内进行缓存。
比如启动一个node程序A,这个A程序中有两个js文件,分别是index.js和workerAnt.js,index.js是入口 如果两个js文件中都有require("myLib")这个语句,那么index.js在引用这个myLib库的时候,node就会把myLib缓存下来,这样待会儿workerAnt.js再引用myLib库的时候就很快了。
但是!如果现在我们把这个A程序停下来了,过一会儿再启动A,那么index.js在引用myLib库的时候,node还是需要走编译的步骤的。
这是我理解的,不知道对不对。
Node对引入过的模块都会进行缓存
和你说的编译执行后的对象不是一回事吧。
浏览器也对静态文件缓存呀,如果服务器返回
304
状态码 就会用缓存中的文件呀。我觉得朴灵老师说的“Node对引入过的模块都会进行缓存,以减少二次引入时的开销”
指的是在一次运行内进行缓存。
比如启动一个node程序A,这个A程序中有两个js文件,分别是index.js和workerAnt.js,index.js是入口
如果两个js文件中都有require("myLib")这个语句,那么index.js在引用这个myLib库的时候,node就会把myLib缓存下来,这样待会儿workerAnt.js再引用myLib库的时候就很快了。
但是!如果现在我们把这个A程序停下来了,过一会儿再启动A,那么index.js在引用myLib库的时候,node还是需要走编译的步骤的。
这是我理解的,不知道对不对。