shurcooL / Go-Package-Store

An app that displays updates for the Go packages in your GOPATH.
MIT License
900 stars 29 forks source link

Use Vecty to render on frontend. #77

Closed dmitshur closed 7 years ago

dmitshur commented 7 years ago

The goal of this change is to be optimize frontend rendering performance when there's a large number of updates available.

This is done by using Vecty to be able to make incremental changes to the current page, rather than having to re-render the entire page from scratch for each update.

Another technique that's used is to create a scheduler. Its job is to batch many update operations that occur rapidly one after another, apply them all, and perform a re-render just once. This helps because rendering the entire page once is faster than doing as many renders as there are updates.

There is still many WIP and development code left commented out, it will be used and cleaned up over time. Some of that is waiting on a resolution to https://github.com/gopherjs/vecty/issues/92. /cc @slimsag FYI.