"One thing to pay attention to when preloading fonts is that you also have to set the crossorigin attribute even if the font is on the same domain: <link rel="preload" href="font.woff" as="font" crossorigin>"
Wondering if async attribute is actually a thing in 2017. Last time I observed chrome dev tools it seems that async is default behaviour at least for Chrome.
This seems like a very promising idea, especially since every site nowadays loads 12 scripts that were copy/pasted from eight different sources by six different developers all over the page, and each one just blocks everything no matter how fast your network or client is.
I mean, that's if you're lucky and the development team was relatively competent.
Its not different developers but different services. Developers are competent. Its the product owners that are to blame. For example a hotel website, will have one minified concatenated script file, but then on top there might be other services, for example client side A/B testing. Which cant even be defer loaded and usually comes first!
Sometimes analytics would come separate etc Other services show things like 'x number of people viewing the booking' etc etc
(BTW i don't see how you can have separate files, using modules or require etc would prove difficult to have split files, rather than one)
Build systems really help reduce the number of scripts (and stylesheets) loaded. I currently use Ember-CLI, and it's just a "vendor" script containing all your third-party scripts and another with your app-specific code.
The old-fashioned way of embedding scripts directly is really wasteful, I agree.
I think you vastly underestimate how wasteful 3rd party JS API implementations work. Especially for advertising, analytics, and other injected widgets.
Build systems exist, but that doesn't mean they are used everywhere or that all features can be integrated into them. The same goes for static analysis tools, dynamic analysis tools, perf optimization tools, security vulnerability testing tools, unit testing, automated integration testing, etc. -- they exist, but their coverage is far less than 100%.
I understand build systems cannot solve every problem, and the mechanism described in the article is certainly useful. I was merely responding to the concern about third-party scripts with links copied-and-pasted mindlessly, and which would be better handled using a build system.
Sure, but adding GA to a page is what I meant by copy/paste, this still happens everywhere outside of the build process. Then of course marketing needs to add 10 other things and they can't figure out whatever hip new build tool someone set up and then suddenly things get really messy.
Yes this happened even at whatever company you think is a paragon of engineering best practices and modern development.
HTTP2 greatly reduces the cost of requests though so what you really want is tree shaking to get rid of code you don't use and minification to reduce its size.
Strangely enough people usually can't infer sarcasm without body language.
This is the same reason the Secret Service put a large bounty on software that can accurately identify sarcasm from legit intent to do harm to political figures.
But why?