gpt4 book ai didi

javascript - 当多个 View 共享同一模型时,主干 View 渲染期间的单个服务器调用

转载 作者:行者123 更新时间:2023-12-03 05:19:19 25 4
gpt4 key购买 nike

我有一个 View 的多个实例,它们之间共享单个模型实例。

在 View 渲染期间,我想调用模型内部的一个函数,该函数使服务器调用仅获取一些数据一次。

由于这些 View 是同一 View 的实例,因此它们都触发模型内的函数。因此进行多个服务器调用。
知道如何才能在模型内触发此函数一次。

最佳答案

假设您正在模型上调用fetch。此调用将返回请求(实际上是一个 jqXHR 对象)。因此,一个非常有用的模式是:

fetchOnce: function() {
if (!this.fetchRequest || this.fetchRequest.readyState == 4 && this.fetchRequest.status >= 400) {
this.fetchRequest = this.fetch.apply(this, arguments);
}
return this.fetchRequest;
},

这将在调用 fetch 时保存请求,并避免在当前请求正在进行或已成功完成时进行任何其他调用。

因为 jqXHR 对象是 Deferred Promise对象,任何时候调用 fetchOnce 时,都可以添加回调(如 deferred.done ):

model.fetchOnce().done(function() { console.log('model fetched!'); });

关于javascript - 当多个 View 共享同一模型时,主干 View 渲染期间的单个服务器调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41463215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com