Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Offline First Web Development

You're reading from   Offline First Web Development Design and build robust offline-first apps for exceptional user experience even when an internet connection is absent

Arrow left icon
Product type Paperback
Published in Nov 2015
Publisher Packt
ISBN-13 9781785884573
Length 316 pages
Edition 1st Edition
Languages
Arrow right icon
Author (1):
Arrow left icon
Daniel Sauble Daniel Sauble
Author Profile Icon Daniel Sauble
Daniel Sauble
Arrow right icon
View More author details
Toc

Table of Contents (12) Chapters Close

Preface 1. The Pain of Being Offline FREE CHAPTER 2. Building a To-do App 3. Designing Online Behavior 4. Getting Online 5. Be Honest about What's Happening 6. Be Eventually Consistent 7. Choosing Intelligent Defaults 8. Networking While Offline 9. Testing and Measuring the UX A. References Index

Implementing conflict detection


PouchDB is aware of conflicts under the hood. By default, when a conflict occurs, it chooses an arbitrary winner and returns it on request. This isn't quite the behavior that we want. Instead, when a conflict occurs, we want PouchDB to give us a list of all of the conflicts so that the user can resolve them. The first step is altering our stores to detect and expose the conflicts.

Getting PouchDB to return conflicts

The first step is to get PouchDB to return a list of the conflict revisions. Edit the doWithDocs method in the Item store and add the following option to the allDocs method immediately after the endKey option:

conflicts: true

Now, each document with conflicts will have a _conflicts attribute with an array of all the losing conflicts. Once we have this, we can let the user select the revision that they actually want to win and then remove all of the other conflicts.

Attaching conflicts to the item model

Now that PouchDB is returning conflicts, we need...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image