Activist.js

Frequently Asked Questions

What is Activist.js?
Activist.js is a library which attempts to provide resilience for websites without cooperation from visitors, browsers, or the network. It does this by caching a script when visitors access your server, which will make additional attempts to access content when the server cannot be directly reached.
Which browsers does Activist.js support?
Activist.js supports all major browsers, including Chrome, Firefox, and Internet Explorer. A full matrix of expected behavior is maintained on our wiki.
Why is this a thing?
The mechanisms that Activist.js uses to cache content were designed for accessing websites when the user is offline, and are used by some large websites, like Google Docs and Wunderlist. Due to their design, these mechanisms have been difficult to retrofit onto sites which are not designed for them. Activist.js provides a minimally invasive drop-in solution for adding an Application Cache fall-back to most websites without additional server-side support.
How does it work Technically?
Activist.js works by instructing the browser to only cache three resources for your site: The script with logic for how to handle failures, a fallback page the browser loads when a failure occurs, and a blank page which invokes the caching process that is included on pages your users visit. One of the hard parts of integrating the HTML5 Application Cache mechanism is that the page which includes the manifest tag to configure the cache is implicitly cached itself, this means that an extra page is required, or your real content will be cached and visitors may unexpectedly see out of date content.
What about first-time visitors?
In the long term, we believe that this issue can be mitigated through a more robust name resolution protocol, a lessened set of issues with fetching content indirectly that will come with widened adoption of SSL, and more agressive attempts to load content by browsers. In the short term, we're looking at ways to make the URLs on your page include the logic of Activist.js. We believe that more robust URLs can be created in a way that is still largely recognizable, but can be loaded even with some forms of server disruption. You can follow our efforts on building resilient URLs here.
What else can I do?
We are working to create web standards which make it easier to accomplish the same goals that are accomplished by Activist.js. You can join our mailing list to stay up-to-date on these issues, and to help advocate for an Internet that is free of disruption.