【发布时间】:2016-09-01 11:58:41
【问题描述】:
我已经在一个对象上存储了一个 ajax 调用,以便与 deferred 一起使用
this.favorites = $.ajax({
url: '/get-favorites',
type: 'post',
dataType: 'json'
});
当我在回调中使用this.favorites.done(myFunction) 时,参数是一个对象,其中包含从数据库中提供的所需数据。如果我更新我的数据库,我需要同时更新来自 ajax 调用的数据,我的想法是重新运行this.favorite,但我还没有找到这样做的方法有人可以帮助我吗?
谢谢!
【问题讨论】:
-
“我的想法是重新运行......”。您似乎正在寻找旧公司的最爱,一个函数!
-
是的,但是如果在我的函数中我调用
this.favorites.done(),那已经是一个函数,我不会收到更新的数据,而是缓存的数据,就像所有延迟对象一样,我的问题是当我想要接收更新的数据而不是缓存的数据 -
不清楚你在问什么 - 因此投票结束。
-
我觉得够清楚了,我已经收到了很好的答案!如果您需要更清楚地阅读下面的答案,如果您尝试我的原始解决方案并调用 3 次 this.favorites.done() 您可以看到只执行了一次调用,如果您定义了一个属性,就像答案中建议的那样,并且3 次调用 this.favorites 执行了 3 次 ajax 调用。我不太会用英文写,但我希望你现在能理解这个问题......
标签: jquery ajax asynchronous jquery-deferred