首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavascriptMVC:它缓存模型吗?

JavascriptMVC:它缓存模型吗?
EN

Stack Overflow用户
提问于 2011-06-09 18:43:30
回答 1查看 436关注 0票数 1

我是JMVC的初学者。我正在尝试弄清楚,在从服务器检索模型之后,它是否将模型存储在任何地方。

例如,Model docs包含以下代码片段:

代码语言:javascript
复制
$.Controller("Tasks",
{
  init: function() {
    Task.findAll({}, this.callback('tasks'));
  },

调用Task.findall()是将任务列表保存在某个变量中,比如Task.tasks,还是需要我自己存储它们?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-19 21:15:00

不,它似乎不会缓存。

但是,您可以非常简单地缓存您的REST资源。让我们假设您有一个如下所示的RESTful资源。

代码语言:javascript
复制
$.Model('Example.Models.Example',
{
    findAll: REST_BASEPATH + "/example"
}

现在,要缓存这个查询,首先需要使用一些显式的jQuery重新实现该查询:

代码语言:javascript
复制
$.Model('Example.Models.Example',
{
    findAll: function(){
        $.ajax({
            url: REST_BASEPATH + "/example",
            type: 'get',
            dataType: 'json',
        })        
    }
}

现在,findAll函数将返回一个JMVC能够使用的jQuery延迟对象。要添加缓存,可以在第一次调用时存储延迟对象,并在后续调用中返回相同的对象。如下所示:

代码语言:javascript
复制
var cache = undefined
$.Model('Example.Models.Example',
{
    findAll: function(){
        if (!cache) {
            cache = $.ajax({
                url: REST_BASEPATH + "/example",
                type: 'get',
                dataType: 'json',
            })
        }
        return cache
    }
}

我觉得这有点笨拙,但这就是我今天才想出来的。如果有更优雅的方式,请让我知道。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6291550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档