Does ember-data do any caching internally ?

We've run into this issue at my work and here's the relevant code to making this work: This is in serializers/application.js

import DS from 'ember-data'; export default DS.RESTSerializer.extend({ normalizeArrayResponse: function(store, primaryModelClass, payload, id, requestType) { let loadedRecords = store.peekAll(primaryModelClass.modelName); let payloadRecords = payload[Object.keys(payload)[0]]; let payloadRecordIds = payloadRecords.map(record => record.id); let size = loadedRecords.get("length");

    for (var i = 0; i < size; i++) {
        let loadedRecord = loadedRecords.objectAt(i);
        /**
        * Immediately unload the record if it should not be in the store
        */
        if (payloadRecordIds.indexOf(Number(loadedRecord.get("id"))) == -1) {
            if (loadedRecord) {
                loadedRecord.unloadRecord();
            }
        } else {
            /**
            * Rollback attributes if the model is dirty.
            * This preps unsaved changes to be overwritten
            */
            if (loadedRecord && loadedRecord.get("hasDirtyAttributes")) {
                loadedRecord.rollbackAttributes();
            }
        }
    }
    return this._super(store, primaryModelClass, payload, id, requestType);
},
normalizeSingleResponse: function(store, primaryModelClass, payload, id, requestType) {
    let loadedRecord = store.peekRecord(primaryModelClass.modelName, id);
    /**
    * Rollback attributes if the model is dirty.
    * This preps unsaved changes to be overwritten
    *
    * Note: should not be called on dirty objects
    */
    if (loadedRecord && loadedRecord.get("hasDirtyAttributes")) {
        loadedRecord.rollbackAttributes();
    }

    return this._super(store, primaryModelClass, payload, id, requestType);
},

});

/r/emberjs Thread Parent