If you've had even a passing experience with developing websites you will no doubt have used Ajax to make in-page requests to a web server, and then handling its responses to make some change(s) to the current page. But, if you're not careful, you can end up with code that becomes heavily reliant on the HTML front-end document structure, making development, debugging and continued maintenance increasingly difficult.
Current web technologies (such as Web components, React and Vue.js) tend to be geared towards retrieving only data from the server and then processing them on the client in order to update or re-construct view(s) of that data. Individual portions of a web page are isolated from one another, communicating only via data-binding or events. However, there's a learning curve to incorporating these technologies, and in complex cases, one's entire application architecture (including how the front-end is constructed and rendered) will be driven by the implementation details. There is another way.
This talk will outline my experiences of generalising some alternative but well-known techniques in order to develop a complex web application without these mental overheads, so it's actually fun and rewarding.