我想节省计算时间, 避免多次使用相同的参数运行相同的函数。
给出以下代码:
toolbar: [{ name: "create", text: "@T("Admin.Common.AddNewRecord")" },{ name: "add_user", template: '<a class="k-button" id="CustomButton" onclick="oleuminvoiceDocketSubmit()">Send invoice to customer</a>'}],
//Custom Toolbar Button Click
function oleuminvoiceDocketSubmit()
{
$.ajax({
dataType: "json",
type: "POST",
url: "@(Url.Action("Abc", "Def"))",
data: {
'id':InvoiceId,
'selectedid':selectedIds,
'method':'Ground'
},
success: function (response) {
},
});
}
让我们假设'f'函数参数的计算很难, 而且我想以某种方式兑现结果,以便我知道它是否曾经被执行过。
这是我的主要问题:
我假设我可以为f1(3,4)生成一个密钥, 例如:key&lt; - paste('f1',x,y),做我自己的簿记,避免再次运行。
然而,f2是否可以自动从f生成这样的密钥并将其返回给我? (对于任何带有任何参数的函数)
如果不是/或者,在我通过f1(x,y)之前,我可以以通用方式生成这样的密钥, 这适用于任何带有任何参数的函数吗?
非常感谢
答案 0 :(得分:0)
有趣的问题。我从没想过这个。
快速谷歌搜索找到了这个包:R.cache
。
函数addMemoization
将函数作为参数,并返回一个应该缓存其结果的函数。
我自己没有使用过这个包,所以我不知道它的效果如何,但它似乎适合你所寻找的。 p>