Large javascript resources in Ultra

Discussion created by wt0069224 on Nov 23, 2017

We're moving to Ultra in the coming year, and I've been a bit dismayed by the page load times and sizes. Diving into it in a bit more detail, there are a lot of JS files being included that are really very large - one such file is content-create.xxxxxxxx.js, which is 960 KB (although it does zip down to 201 KB), and apparently cannot be cached. Looking at the content of that, we see no less than 16 duplicates of the Facebook copyright notice at the top of the file, as well as a few more similar copyright notices, and then the remainder of the file is unminified JS.


There are also some warnings that come up such as:

Warning: It looks like you're using a minified copy of the development build of React. When deploying React apps to production, make sure to use the production build which skips development warnings and is faster. See https://fb.me/react-minification for more details.


You are currently using minified code outside of NODE_ENV === 'production'. This means that you are running a slower development build of Redux. You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) to ensure you have the correct code for your production build.

At the moment, loading the page for the first time takes a good ~5 seconds, and switching pages within Ultra (which doesn't involve a whole page load and should be relatively fast) is still up in the ~3 second range.


I understand that a substantial fraction of Blackboard uses a lot of generated javascript and HTML, and no one hand-crafts these things anymore, but given that this is a production deployment a little attention to some basic efficiencies would give us a better user experience.