Javascript 何时应该使用dojo.data.ItemFileWriteStore';s_saveEverything功能?

Javascript 何时应该使用dojo.data.ItemFileWriteStore';s_saveEverything功能?,javascript,dojo,Javascript,Dojo,我使用的是Dojo1.6版本。我的理解是:if store.\u saveEverything=saveCompleteCallback;如果已定义,那么调用store.save()时是否仅调用回调函数saveCompleteCallback 我是否需要使用回调函数saveCompleteCallback(saveSuccess,saveFail,storeData)中定义的1st和2nd参数?因为我只知道在调用store.save({onComplete:saveSuccess,onError

我使用的是Dojo1.6版本。我的理解是:if store.\u saveEverything=saveCompleteCallback;如果已定义,那么调用store.save()时是否仅调用回调函数saveCompleteCallback


我是否需要使用回调函数saveCompleteCallback(saveSuccesssaveFail,storeData)中定义的1st2nd参数?因为我只知道在调用store.save({onComplete:saveSuccess,onError:saveFail})时需要使用它们。

首先,我只在需要dojox.data.dataGrid的数据时才使用saveEverything

假设您定义了:store.\u saveEverything=saveCompleteCallback

我刚刚发现,包括saveCompleteCallback的第一个和第二个参数(saveSuccess、saveFail、storeData)是必要的,因为需要在saveCompleteCallback()中再次调用一个额外的saveSuccess()和saveFail()函数。e、 g

// When you wanna upload datagrid, you click upload button
Store.save({ onComplete : saveSuccess, onError : saveFail });

// Definition of saveCompleteCallback
function saveCompleteCallback(saveSuccess, saveFail, storeData) {
  dojo.xhrpost(
    url: posturl,
    postData:storeData,
    load: function(data) {
      // saveSuccess() must be invoked here again, 
      // otherwise this function will not be called
      saveSuccess();
    }
  );
}

function saveSuccess() {
    dataGrid = dijit.byId('YOUR DATAGRID ID');
    dojo.xhrGet(
        url: geturl, 
        load: function(date){
            // The reason that a new xhrGet is called is db data is updated
            // So the dataGrid will have no value after xhrPost
            var store = new dojo.data.ItemFileWriteStore({data: data});
            store._saveEverything = saveEverything;
            store.clearOnClose = true;
            store.urlPreventCache = true;
            dataGrid.setStore(store);
        }
    );
}