<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## Backbone.sync(同步) **Backbone.sync** 是 Backbone 每次向服務器讀取或保存模型時都要調用執行的函數。 默認情況下,它使用 `jQuery.ajax` 方法發送 RESTful json 請求,并且返回一個 [jqXHR](http://www.css88.com/jqapi-1.9/jQuery.ajax/#jqXHR)。 如果想采用不同的持久化方案,比如 WebSockets, XML, 或 Local Storage,我們可以重載該函數。 **Backbone.sync** 的語法為 `sync(method, model, [options])`。 * **method** – CRUD 方法 (`"create"`, `"read"`, `"update"`, or `"delete"`) * **model** – 要被保存的模型(或要被讀取的集合) * **options** – 成功和失敗的回調函數,以及所有 jQuery 請求支持的選項 默認情況下,當 **Backbone.sync** 發送請求以保存模型時,其屬性會被序列化為 JSON,并以 `application/json` 的內容類型發送。 當接收到來自服務器的 JSON 響應后,對經過服務器改變的模型進行拆解,然后在客戶端更新。 當 `"read"` 請求從服務器端響應一個集合([Collection#fetch](#Collection#fetch))時,便拆解模型屬性對象的數組。 當一個模型或集合開始 **sync**到服務器時,將觸發一個 `"request"` 事件。 如果請求成功完成,你會得到一個`"sync"`事件, 如果請求失敗,你會得到一個 `"error"`事件。 **sync**函數可重寫為全局性的`Backbone.sync`, 或在細粒度級別, 通過添加一個 `sync`函數 到Backbone集合或單個模型時。 默認 **sync** 映射 REST 風格的 CRUD 類似下面這樣: * **create → POST ?** `/collection` * **read → GET ?** `/collection[/id]` * **update → PUT ?** `/collection/id` * **patch → PATCH ?** `/collection/id` * **delete → DELETE ?** `/collection/id` 舉個例子,一個Rail 4 處理程序響應一個來自`Backbone`的`"update"`調用,可能是這樣的: _(在真正的代碼中, 千萬不要盲目的使用`update_attributes`, ,你可以被改變的屬性始終是白名單。)_ ``` def update account = Account.find params[:id] account.update_attributes params.require(:account).permit(:name, :otherparam) render :json => account end ``` 一個技巧: 通過設置`ActiveRecord::Base.include_root_in_json = false`,在模型上禁用默認命名空間的`to_json`來整合 Rails 3.1之前的版本, 。 **ajax**`Backbone.ajax = function(request) { ... };` 如果你想使用自定義的AJAX功能, 或者你的客戶端不支持的[jQuery.ajax](http://www.css88.com/jqapi-1.9/jQuery.ajax/) API,你需要調整的東西, 您可以通過設置`Backbone.ajax`這樣做。 **emulateHTTP**`Backbone.emulateHTTP = true` 如果你想在不支持Backbone的默認REST/ HTTP方式的Web服務器上工作, 您可以選擇開啟`Backbone.emulateHTTP`。 設置該選項將通過 `POST` 方法偽造 `PUT`,`PATCH` 和 `DELETE` 請求 用真實的方法設定`X-HTTP-Method-Override`頭信息。 如果支持`emulateJSON`,此時該請求會向服務器傳入名為 `_method` 的參數。 ``` Backbone.emulateHTTP = true; model.save(); // POST to "/collection/id", with "_method=PUT" + header. ``` **emulateJSON**`Backbone.emulateJSON = true` 如果你想在不支持發送 `application/json` 編碼請求的Web服務器上工作,設置`Backbone.emulateJSON = true;`將導致JSON根據模型參數進行序列化, 并通過`application/x-www-form-urlencoded` MIME類型來發送一個偽造HTML表單請求,
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看