This tutorial will hopefully help you to better understand how make certain private data invalidate when a user performs a certain request. This is done by using the Knockout syntax.
First, let’s create a file called reload.js and place it in your web/js/ folder.
Next, let’s create a file called PersonalData.php and place it in the root of your module inside a CustomerData folder. Example: app/code/Your/Module/CustomerData/PersonalData.php
Take notice to the getSectionData() function listed here. This function is important and needed to return the new data upon an action to invalidate a private section.
Next, let’s create a template file called personal.phtml. Example: app/code/Your/Module/CustomerData/view/frontend/templates/personal.phtml
Now let’s create a layout file called default.xml.
Finally, let’s tell Magento what post or put request will invalidate our container of data. To do this, simply create a file called sections.xml and place it inside the etc/frontend folder.
You can learn more about this here: http://devdocs.magento.com/guides/v2.1/config-guide/cache/cache-priv-priv.html
If you are new to the Knockout library you can read more here: http://knockoutjs.com/documentation/introduction.html.