Even if blockers do count as non-standard, random scripts not loading should not be capable of bringing down your site, and this should've been clear even before the npm left-pad debacle.
In this specific case the behavior is caused by more than a run of the mill adblocker with standard blocking lists. The OP seems to be using a very aggressive blocking list (eg. blocking all google services), or blocking all third party scripts altogether.
>Even if blockers do count as non-standard, random scripts not loading should not be capable of bringing down your site, and this should've been clear even before the npm left-pad debacle.
"shouldn't" is debatable here, especially when the cost to mitigate those issues are non-trivial (engineering effort) and the chance of it occurring (eg. google maps randomly failing) is low. A failed hard drive shouldn't bring down a computer either, but how many of us are using laptops with RAID1 drives?
The website has every right to server you the content as they seem fit.
You are not entitled to an experience other than the one they are willing to provide.
The only reason the site has so much control is that the browser makers gave it away. The browser makers should have retained much more control over the user experience. The site of course should have complete control over the words that appear on the site (and the ordering of the words of course) and some other things.
That was the fundamental mistake of the web. If people wanted to create a new internet protocol for serving user experiences over the net such that the user need not explicitly install any app, that would've been OK with me. The mistake was achieving that goal by extending the internet protocol that was quickly become society's most important way of distributing words (writings).
I've completely gotten off the subject of ad blockers.
And they aren't entitled to have me as a user or customer.
As ad blocking is a matter of basic digital sanitation, this is roughly analogous to me refusing to do business with a doctor whose office has a sign outside saying "no facemasks may be worn" — they might be allowed by law to make a bad demand, but it's still bad and they still shouldn't even if they don't care about losing my custom.
A better analogy is you go into a doctors office, there have pamphlets for other services offered that you are no interested in, so rip the pamphlet displays off the wall and complain you're the victim for not being allowed to see the doctor.
If you engineer your application correctly with non-critical things outside the critical path you can have the best of both worlds.
Imagine going into the CTO’s office to explain why some vital tool or feature hasn’t been working for 35% of users because of some silly issue with Google Maps. “Why did Google Maps issues break our site?” … “well ackshually our entire app waits for maps.init()…” this is like the worst response imaginable.
I'd say it's not unreasonable. You're giving your third parties the ability to break your business. Third party scripts are blocked or just fail to load all the time, APIs change suddenly, etc.
What's your strategy for dealing with jquery not getting loaded?
>APIs change suddenly, etc.
That's going to be an issue regardless of you check whether the script is loaded or not.
Host it on your own infrastructure so that it's the same reliability as your site itself?
You can save your site by self-hosting jQuery, but if your business depends on Google Maps you should at least handle failure more gracefully than a blank screen.
That hasn't been true for years due to timing attacks. See: https://news.ycombinator.com/item?id=24745748
This case specifically just seems to hit (mandated?) nutritional information that's also printed on the packaging.