gpt4 book ai didi

javascript - 如何将自定义框架集成到主干中?

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

我使用 PHP 和此对象文字形式访问我的服务器。该对象文字被转换为 JSON 并发送到服务器,在服务器中它被转换回对象。从那里我读取模型属性以了解要运行哪个模型。另外,包含的是用户 token ,因此我知道要为哪个用户检索模型数据。

$A.Packet.define({
model: null,
client: {},
server: {
smalls: {},
feed: {},
favorites: {}
}
});

基本上,该策略是将信息编码为对象文字,对其进行 json 编码、发送、解码、应用服务器逻辑并以 JSON 形式发回数据。

这一切都抽象为运行

$A.Packet.push({model: self.Name});

然后 pre(packet)post(packet) ajax 方法会自动运行。

如何将这种风格集成到主干中?

根据 Backbone,我可以覆盖 sync() 函数,但我想在破解之前最好地了解如何集成事物。

我的代码已经转换为 MV* 形式,但我正在使用虚拟数据来测试前端。我现在想启动后端。

开发站点在这里:

http://www.arcmarks.com/dev

相关

How to override Backbone.sync? - 但是我还不想使用 localStorage,并且我没有使用它规定我必须实现的 4 种方法。

我的所有操作都是 POST JSON 调用,一旦到达服务器,它们就会执行所需的操作。

最佳答案

Backbone.LocalStorage的带注释的来源中在文档末尾有一个名为 Backbone.LocalStorage.sync 的静态方法,别名为 Backbone.localSync。这是他们编写实现自定义同步的代码的实际部分。

  • 然后,他们将 Backbone.sync 引用到 Backbone.ajaxSync
  • 下一步将实现策略模式来决定使用哪种同步方法。
  • 最后,他们使用自定义函数覆盖 Backbone.sync 以使用该策略。

这允许开发人员通过向模型根对象添加属性来选择同步类型,在本例中为 localStorage : new Backbone.LocalStorage()。您只需要根据自己的需要来实现即可。

// Create your own sync method
Backbone.customSync = function(method, model, options, error) {
// Your custom sync code here
return $.post('http://something.somewh.ere', model.toJSON());

// Implementing a switch statement for the method in here would
// be a good idea :-)
}

// Create reference to original sync method
Backbone.ajaxSync = Backbone.sync;

// Get the sync strategy
Backbone.getSyncMethod = function(model) {
if(model.customSync || (model.collection && model.collection.customSync))
return Backbone.customSync;

return Backbone.ajaxSync;
};

// Overwrite Backbone.sync to call getSyncMethod() to run sync tasks
Backbone.sync = function(method, model, options, error) {
return Backbone.getSyncMethod(model)
.apply(this, [method, model, options, error]);
};

现在,当您的模型具有值为真值的属性 customSync 时,将使用您的新同步策略。

这一切都可以根据您的需求进行调整,希望这会有所帮助。

关于javascript - 如何将自定义框架集成到主干中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24887145/

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