84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
最近在看《深入浅出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还是需要走编译的步骤的。
这是我理解的,不知道对不对。