Comments (2)
Mentioned the wrong issue in the commit that closed this. Whoops!
from backbone.dualstorage.
store.clean
is the call you're looking for. It wasn't obvious, because it can clean both dirty and destroyed records and doesn't contain either string.
Here's what generally happens (I'll go through syncDestoryed
, but the same applies to syncDirty
:
-
syncDestroyed
callsmodel.destroy()
-
Destroying the model leads to dualsync's
when 'delete'
-
For models that have been successfully saved,
localsync('delete', model, options)
options.success = (resp, _status, _xhr) -> return useOfflineStorage() if hasOfflineStatusCode options.xhr localsync(method, model, options)
-
localsync
when 'delete'
callsstore.destroy(model)
and thenstore.clean
to clean either 1)'dirty'
because it had never been created online and was marked dirty for creation, or 2)'destroyed'
because it was created online and deleted offline. See this annotated source:when 'delete' store.destroy(model) # options.dirty implies that this delete is using offline storage if options.dirty && !model.hasTempId() store.destroyed(model) else # !options.dirty || model.hasTempId() if model.hasTempId() store.clean(model, 'dirty') else # !options.dirty store.clean(model, 'destroyed')
The two places I can see this might be going wrong:
- In step 3,
return useOfflineStorage() if hasOfflineStatusCode options.xhr
. I suspect thathasOfflineStatusCode(options.xhr)
is returning for you, because it seemshasOfflineStatusCode
was also triggering #145 for you. Let me know if you can confirm this in debugging. IfhasOfflineStatusCode
is returning true, then leaving the records marked dirty/destroyed is the intended behavior. - There could be some edge case that I'm not thinking of for the logic in step 4 that causes something not to be cleaned that should.
comments in the code would help
noted. I also would like to improve the ease of understanding.
from backbone.dualstorage.
Related Issues (20)
- Save as dirty when Backbone model validation fails. HOT 2
- syncDirtyAndDestroyed() doesn't remove/clear ###_dirty in localStorage HOT 4
- If a collection has never had a model saved successfully to the server, it won't cache failed saves to localStorage HOT 8
- using .toJSON(options) instead of JSON.stringify in create()/update() store methods HOT 1
- "Uncaught TypeError: Cannot read property 'toString' of undefined" when saving without IDs HOT 1
- xhr 200 result of an error HOT 3
- Feature request: add a remote:"never" option per save HOT 4
- Fire event when syncDirtyAndDestroyed is finished HOT 1
- Offline changes with idAttribute seem to break page after refresh HOT 5
- Model.parse should not be called in dualsync HOT 3
- Parsing the string of ids for a collection each time a model updates blocks the main process HOT 1
- Would be better if syncDirty() returned a promise HOT 1
- model id not being set in Store.prototype.create HOT 5
- Dirty/Destroyed models not be cleared from localStorage after an online sync. HOT 1
- error function not defined HOT 5
- localForage support HOT 1
- QuotaExceededError HOT 1
- Model creation and modification race condition HOT 1
- Fetching remote changes before resolving dirty state HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from backbone.dualstorage.