gpt4 book ai didi

javascript - 使用 jQuery Deferred 对象解决许多 Backbone 依赖关系

转载 作者:行者123 更新时间:2023-11-30 06:30:26 37 4
gpt4 key购买 nike

我有一个相当大的 Backbone.js 项目,所以我希望延迟加载尽可能多的资源。

考虑一个 View 需要加载它自己的模板、一些 subview 模板和一个集合。 (我不想在请求下一个之前必须等待每个异步依赖项都解决。)如果我能做类似的事情会很有帮助......

initialize: function() {

$.when([
Handlebars.get('Template1', callback), // callback sets this.template
Handlebars.get('Template2', callback), // callback sets subview template
App.Store.get('MessageCollection', callback) // callback sets this.collection
]).then($.proxy(this.render, this)); // render
}

get 函数是我构建的一些帮助程序,如果资源存在于缓存/存储中,它会提供资源,否则它将返回延迟对象...

return $.ajax(...)

所以这些 get 助手无论如何都需要返回一个 jquery 延迟对象。当在缓存/存储中找到资源时,返回已解析的延迟对象是否有任何问题?

App.Store.get = function(resource, callback) {

if (resource exists) {
return $.Deferred().done(callback).resolve();
} else {
var model = new App.Model;
return model.fetch();
}
}

这会导致任何问题吗?有一个更好的方法吗?

最佳答案

通常,您的方法应该按原样工作。你可以使用 jquery.whenall插件以便并行等待多个请求。

但如果项目实际上比加载几个模板更复杂,您可能应该查看一些 AMD 解决方案,例如 require.js

关于javascript - 使用 jQuery Deferred 对象解决许多 Backbone 依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18026348/

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