notebook/app/views/layouts/_common_head.html.erb
Robert Richter 7dcf798f8a
Optimize javascript load times
Our application JS is bloated with minified libraries, while our actual
application Javascript barely amounts to more than two hundred lines.
I propose removing these libraries from our sass file, and instead
load them as separate resources in `<link>` and `<script>` tags.

This has several advantages:

 - By using common CDNs, users are likely to have many of these libraries
   cached already.
 - Even if the files aren't cached, the CDN is likely to deliver them
   faster.
 - We can use the HTML5 'async' attribute to load these libraries
   asynchronously, so users aren't held up while they download.
 - Our fully compiled application JS is much, much smaller, which
   reduces the load on our host.

Also, on the topic of load times, I realized that in #152 that one of the
images was a PNG, not a JPG. I had tried optimizing the image, but I didn't
realize that it wasn't a JPG like the others. Here, I converted it to a JPG,
and it is significantly smaller, and it is visually unchanged.

I'm having some difficulty testing on my local machine, so I would appreciate
some additional manual testing before merging this.
2016-11-02 23:41:00 -05:00

19 lines
1.7 KiB
Plaintext

<meta name="viewport" content="width=device-width, initial-scale=1">
<%= csrf_meta_tags %>
<%= stylesheet_link_tag 'application' %>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.8/css/materialize.min.css" integrity="sha256-fGJODaGYSINeMscXSbyu3k+sCt9ON9XOpsVOcvco3Qg=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css" integrity="sha256-rByPlHULObEjJ6XQxW/flG2r+22R5dKiAoef+aXWfik=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<script async src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js" integrity="sha256-KM512VNnjElC30ehFwehXjx1YCHPiQkOPmqnrWtpccM=" crossorigin="anonymous"></script>
<script async src="https://cdnjs.cloudflare.com/ajax/libs/jquery-ujs/1.2.2/rails.min.js" integrity="sha256-BbyWhCn0G+F6xbWJ2pcI5LnnpsnpSzyjJNVtl7ABp+M=" crossorigin="anonymous"></script>
<script async src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script>
<script async src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.8/js/materialize.min.js" integrity="sha256-pVJ6toFhRjat2LSvxugXvMnNDp33i00nfn0CpPXZevs=" crossorigin="anonymous"></script>
<script async src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.16.6/lodash.min.js" integrity="sha256-BWnUqM2wJJk2qUy9kUxldWF2drzn2awHUNcmMy87bDQ=" crossorigin="anonymous"></script>
<%# <title> is set in _seo.html.erb %>
<%= render 'layouts/favicon' %>
<%= javascript_include_tag 'application' %>
<%= render 'layouts/seo' %>