Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript需要缓存_Javascript_Caching_Require - Fatal编程技术网

Javascript需要缓存

Javascript需要缓存,javascript,caching,require,Javascript,Caching,Require,对于我正在设计的一个小型无状态API,我需要一个非常简单的i18n工具。我将用两种语言管理少于30个字符串,最多不超过 我决定编写一个非常简单的i18n工具: exports.i18nString=函数(语言,stringID){ 试一试{ var dictionary=require(`./${language}.json`) if(Array.isArray(dictionary[stringID])){ 返回字典[stringID][Math.floor(Math.random()*字典[

对于我正在设计的一个小型无状态API,我需要一个非常简单的i18n工具。我将用两种语言管理少于30个字符串,最多不超过

我决定编写一个非常简单的i18n工具:

exports.i18nString=函数(语言,stringID){ 试一试{ var dictionary=require(`./${language}.json`) if(Array.isArray(dictionary[stringID])){ 返回字典[stringID][Math.floor(Math.random()*字典[stringID].length)]; } 返回字典[stringID]; }捕获(错误){ } 返回“”; } JSON字典示例:

{
    "example": "This is an example",
    "multi": [
        "Choice 1",
        "Choice 2",
        "Choice 3"
    ]
}
它工作得非常好,非常适合我的需要。但有一件事困扰着我:每次需要字符串时,我调用的函数中都会出现
require

我是Js的初学者,但我知道
require
会打开文件,读取其内容并对其进行评估。但我不知道Js是否足够聪明,可以将文件内容保存在缓存中以备后续调用。如果是这样,那么我的代码就可以了。如果不是,我可能会面临性能问题


你们能启发我吗?

我在随机搜索时找到了答案

事情是这样的:Node.js会缓存每个文件,如下所述:

模块在第一次加载后被缓存。这意味着(除其他外)每个对
require('foo')
的调用都将返回完全相同的对象,如果它将解析为相同的文件。 如果未修改
require.cache
,则多次调用
require('foo')
不会导致多次执行模块代码