Comments (4)
We were discussing this here: #12 (comment)
I had also said this, which you have just shown me was an incorrect assumption:
I don't believe we need any mode that uses local storage does not mark records dirty.
Accounting for that, what do you think about having a storageMode
option with these options? I'm open to suggestions on the option names. Do they make the behavior obvious?
storageMode: mode # one of: ['dual' (default), 'offline', 'remote-only', 'local-only']
from backbone.dualstorage.
I think those work ok. I can't think of a reason why I would use remote-only right now, but it makes sense for completeness. I think the names work fine if their use is documented.
I'm not sure I understand what offline is for?
I'm a little bit confused - would these used in conjunction with the "remote: false" or as a replacement? If a replacement, then I agree this is a better system - providing the decision can be made broadly at the model AND at the individual record save.
Again, I'm dealing with a weird edge case, so I hate to pollute the pool with that. But if there are other uses then making sure to have a local-only for completeness would help my case.
from backbone.dualstorage.
I will document the options regardless, but I hope to make the option names make sense without having to refer to documentation.
These would replace both the local
and remote
options. storageMode: 'offline'
would be equivalent to how remote: false
acts now: it skips the online step, makes the changes locally, and marks the records dirty. Does this table make it clear?
storageMode option |
online sync ($.ajax ) |
localstorage update | mark records dirty | current equivalent |
---|---|---|---|---|
dual (default) |
✅ | ✅ | ✅ if offline | default |
offline |
✅ | ✅ | remote option false AND local attribute falsey |
|
local-only |
✅ | remote option false AND local attribute truthy |
||
remote-only |
✅ | remote attribute truthy |
from backbone.dualstorage.
Yep, that makes sense!
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
- 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
- Destroyed model not being cleared after online sync HOT 2
- 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.