Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve Performance #16

Open
csswizardry opened this issue Mar 6, 2018 · 2 comments
Open

Improve Performance #16

csswizardry opened this issue Mar 6, 2018 · 2 comments

Comments

@csswizardry
Copy link
Contributor

Hey!

I love GbE, but as I was poking through I noticed some low-hanging performance fruit. I hope you don’t mind me opening an issue to open a PR against… I’m gonna start making some small fixes 👍

@rachelandrew
Copy link
Owner

if you like, although I'm intending to rebuild it to bring it in line with some other stuff i'm doing so I'm not sure how long the present incarnation will last at this point.

csswizardry added a commit to csswizardry/grid-by-example that referenced this issue Mar 6, 2018
The @import directive creates a very synchronous, sequential way of
downloading CSS, completely removing our ability to parallelise. By
breaking our CSS out into two separate link elements in the HTML, we can
begin to download the files completely side-by-side.
csswizardry added a commit to csswizardry/grid-by-example that referenced this issue Mar 6, 2018
Inline scripts block on CSSOM construction, which means that they won’t
execute until all discovered CSS is downloaded and parsed. This means
that it’s actually better for performance to place these above any CSS
requests so as not to block them.
csswizardry added a commit to csswizardry/grid-by-example that referenced this issue Mar 6, 2018
Seeing as though we’re loading the Twitter widget.js asynchronously, it
doesn’t need to be defined late/JIT. We can move it up to the head to
get it coming over the wire ASAP, but still ensure that it’s not
blocking anything else.
csswizardry added a commit to csswizardry/grid-by-example that referenced this issue Mar 6, 2018
There are a few external domains that we hit on every page load; let’s
preemptively open up their connections.
@csswizardry
Copy link
Contributor Author

Dang, you’re so on-it! It takes me like three months to even read GH notifications. I’ve opened a small PR at #17, so it’s only a click away if you want it :)

csswizardry added a commit to csswizardry/grid-by-example that referenced this issue Mar 6, 2018
I didn’t realise the include for the Gaug.es analytics was included in
so many layouts. Oops! I’ve removed it so that we don’t have it doubled
up on so many pages.
csswizardry added a commit to csswizardry/grid-by-example that referenced this issue Mar 6, 2018
Along with all the other external domains we’ve preconnected, we might
as well do the analytics stuff, too.
rachelandrew pushed a commit that referenced this issue Mar 21, 2018
* [refs #16] Remove @imported CSS

The @import directive creates a very synchronous, sequential way of
downloading CSS, completely removing our ability to parallelise. By
breaking our CSS out into two separate link elements in the HTML, we can
begin to download the files completely side-by-side.

* [refs #16] Move script block above CSS

Inline scripts block on CSSOM construction, which means that they won’t
execute until all discovered CSS is downloaded and parsed. This means
that it’s actually better for performance to place these above any CSS
requests so as not to block them.

* [refs #16] Move Twitter widget into head

Seeing as though we’re loading the Twitter widget.js asynchronously, it
doesn’t need to be defined late/JIT. We can move it up to the head to
get it coming over the wire ASAP, but still ensure that it’s not
blocking anything else.

* [refs #16] Preconnect external origins

There are a few external domains that we hit on every page load; let’s
preemptively open up their connections.

* [refs #16] Remove stray Gaug.es code

I didn’t realise the include for the Gaug.es analytics was included in
so many layouts. Oops! I’ve removed it so that we don’t have it doubled
up on so many pages.

* [refs #16] Preconnect analytics origins

Along with all the other external domains we’ve preconnected, we might
as well do the analytics stuff, too.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants