【发布时间】:2020-10-29 12:06:02
【问题描述】:
对于我正在设计的小型无状态 API,我需要一个非常简单的 i18n 工具。我将管理 2 种语言的少于 30 个字符串,仅此而已。
我决定写一个非常简单的 i18n 工具:
exports.i18nString = function (language, stringID) {
try {
var dictionary = require(`./${language}.json`)
if (Array.isArray(dictionary[stringID])) {
return dictionary[stringID][Math.floor(Math.random() * dictionary[stringID].length)];
}
return dictionary[stringID];
} catch(error) {
}
return "";
}
一个示例 JSON 字典:
{
"example": "This is an example",
"multi": [
"Choice 1",
"Choice 2",
"Choice 3"
]
}
它完美运行,真正符合我的需求。不过有一件事困扰着我:每次需要字符串时,我调用的函数中都存在require。
我是 Js 的初学者,但我知道 require 打开文件,读取其内容并对其进行评估。但我不知道 Js 是否足够聪明,可以将文件的内容保存在缓存中以供后续调用。如果是这样,那么我的代码就可以了。如果不是这样,我可能会遇到性能问题。
你们能启发我吗?
【问题讨论】:
标签: javascript caching require