使用全局变量来缓存值
Using globals to cache values
我正在编写一个服务,在这个服务中,我想为用户提供或多或少以美元计算的可变比特币的当前价值。
我在想,也许我可以每天存储和更新1 BTC的当前值,在一个全局变量中,所以我不必一直向区块链发送一堆请求。
这只是一个想法,但我想也许我可以这样做:
- 在服务器启动或通过守护进程时,向区块链发送一个请求以获取当前BTC对美元的汇率。
- 将值存储在GLOBAL对象下。例如:
GLOBAL.BTCtoUSD = 300
- 当我想将BTC转换为美元时,使用该变量。
这是经常做的事情吗?有什么缺点吗?还有什么替代方案呢?这是某种形式的缓存吗?
这是一种非常适合于许多情况的缓存形式。只要您的应用程序可以接受不完全更新的速率,那么缓存绝对可以提高请求的性能。
你可以有一个单独的计时器,每隔一段时间(每小时或任何你想要更新它的频率)更新转换率的值。
供参考,node.js全局对象是小写的global
。
使用全局的另一种选择是创建一个模块来负责缓存和更新。然后,您可以在该模块中的任何地方require()
,您想要访问缓存的转化率:
var rates = require('convert-rate');
// then just use rates.BTCtoUSD anywhere in this module
这是更模块化的,使它更容易在其他项目中重用此功能。
相关文章:
- 全局变量和全局对象的属性之间有什么区别吗
- delete关键字在全局变量上的不同行为
- 在javascript函数中设置全局变量
- 如何将getJson的响应保存在全局变量中
- 从Javascript方法返回全局变量
- AngularJS中的封装窗口全局变量
- javascript隐式全局变量
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 如何使全局变量仅特定于该文件
- 在page.open()-PhantomJS中无法访问全局变量
- 使用全局变量来存储数字(JavaScript)
- 如何将变量声明为全局变量
- 在节点中创建文件全局变量
- 在Javascript中使用全局变量作为缓存是很好的
- 创建要在其他函数中使用的全局变量
- 为了避免创建全局变量,可以将所有变量分配给一个对象吗
- 函数中的innerHTML(全局变量?)
- 如何在javascript中为全局变量赋值
- 使用全局变量来缓存值
- 如何缓存/预先计算某个内容(没有全局变量)