我是JMVC的初学者。我正在尝试弄清楚,在从服务器检索模型之后,它是否将模型存储在任何地方。
例如,Model docs包含以下代码片段:
$.Controller("Tasks",
{
init: function() {
Task.findAll({}, this.callback('tasks'));
},调用Task.findall()是将任务列表保存在某个变量中,比如Task.tasks,还是需要我自己存储它们?
谢谢!
发布于 2012-03-19 21:15:00
不,它似乎不会缓存。
但是,您可以非常简单地缓存您的REST资源。让我们假设您有一个如下所示的RESTful资源。
$.Model('Example.Models.Example',
{
findAll: REST_BASEPATH + "/example"
}现在,要缓存这个查询,首先需要使用一些显式的jQuery重新实现该查询:
$.Model('Example.Models.Example',
{
findAll: function(){
$.ajax({
url: REST_BASEPATH + "/example",
type: 'get',
dataType: 'json',
})
}
}现在,findAll函数将返回一个JMVC能够使用的jQuery延迟对象。要添加缓存,可以在第一次调用时存储延迟对象,并在后续调用中返回相同的对象。如下所示:
var cache = undefined
$.Model('Example.Models.Example',
{
findAll: function(){
if (!cache) {
cache = $.ajax({
url: REST_BASEPATH + "/example",
type: 'get',
dataType: 'json',
})
}
return cache
}
}我觉得这有点笨拙,但这就是我今天才想出来的。如果有更优雅的方式,请让我知道。
https://stackoverflow.com/questions/6291550
复制相似问题