AsyncAsset
One of the major changes in the client is the extraction and rewrite of our loader.js resource loader. It ensured that all assets were loaded on the page before we started rendering the received pagelets. We always wanted to have library moved out of the pipe.js core and released as stand alone framework as we believe it can be useful for others. When we encountered an horrible race condition when were started using one pagelet on 2 parts on a page it required a substantial refactor in order to fix this. It was the ideal moment to refactor and release it as stand alone module: https://github.com/bigpipe/async-asset
It's still a bit light on the documentation side of things, but it's a great step forward to a more modular codebase.
Client side template rendering
We've made some changes to the pagelet.render
method so it will automatically render your specified views when you supply the method with an object instead of string. (Please note that you need to set streaming
to true on your Pagelet instance on the server). When an error occurs while rendering your template we will automatically render the error
template and use that instead.
Internal refactors
As mentioned above we ran in to some issues when loading pagelets twice on the same page. This required us to some internal refactors. The pagelets that we receive are no longer stored in an Object but in an array to prevent possible name clashes for happening.
Recursive, nested pagelets
See the 0.7 release of BigPipe for more information about this. It required some changes like making sure that nested pagelets have the correct root elements for searching for the data-pagelet
placeholder attributes.