notebook/app/views/layouts/application.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

53 lines
1.1 KiB
Plaintext

<!DOCTYPE html>
<html lang="en">
<head>
<%= render 'layouts/common_head' %>
</head>
<body data-in-app="true">
<%= render 'layouts/navbar' %>
<% if user_signed_in? %>
<style>
header, main, footer {
padding-left: 310px;
}
@media only screen and (max-width : 992px) {
header, main, footer {
padding-left: 0;
}
}
</style>
<%= render 'layouts/sidenav' %>
<% end %>
<main>
<div>
<div class="row">
<div class="col s12 m12 <%= (current_user && current_user.content_count == 0) ? 'l12' : 'l9' %>">
<%= yield %>
</div>
<div class="col s12 m12 <%= (current_user && current_user.content_count == 0) ? 'l12' : 'l3' %>">
<%= render 'layouts/sidebar' %>
</div>
</div>
</div>
<%= render 'layouts/ganalytics' %>
</main>
<%= render 'layouts/footer' %>
<%= render partial: 'content/keyboard_controls_help_modal' %>
<script type="text/javascript">
<%= yield :javascript %>
$(document).ready(function() {
$('select').material_select();
});
</script>
</body>
</html>