默认情况下,只要保存模型(Model/Collection的sync方法),Backbone就会Ajax请求把模型持久化到服务器端。
有以下几点
- sync方法把model持久化存储到服务器端,你可以重写该方法的实现方式,它默认使用jQuery或zepto的$.ajax
- 整个Backbone,只有Model和Collection的sync会调用Backbone.sync
- 请求类型由第一个参数method决定,可以是create/update/patch/delete/read。它默认采用RESTful请求
- 请求的数据由第二个参数model决定,URL默认是model的url,数据是model的attributes转成JSON。数据类型默认是JSON类型
- 请求后会触发model的request的事件,如果添加了该事件的handler后
执行流程
- 处理type,从methodMap
- 初始化options
- 初始化params,含type/dataType/url
- create/update/patch时,params的contentType为application/json,params.data确保有值,值为model转为json
- emulateJSON
- mimicking HTTP
- 非GET时, processData为false
- PATCH时 IE低版本重写xhr
- 触发request事件
附图
相关: