1. Keep a local copy means you will be the one paying for the bandwidth to serve it.
2. You will have to manually update your local copy everytime upstream makes improvements.
Having things locally increases reliability but it carries its own costs.
1. Keep a local copy means you will be the one paying for the bandwidth to serve it.
2. You will have to manually update your local copy everytime upstream makes improvements.
Having things locally increases reliability but it carries its own costs.
1. This cost is minimal, and most of the time will be served from cache anyway. I'd be willing to stake a claim that literally zero people ever have worried about the cost of serving jQuery when they weren't already worried about the cost of serving a bunch of other shit that eliminating just jQuery wouldn't fix.
2. This is completely undesirable, and doesn't happen anyway because you like to a specific version which does not change from under you.
The arguments in favor of hosting it on a CDN like googles are:
1) Clients who visit other sites will precache the file, so there is a chance they wont even need to load jQuery at all, and this can increase perf
2) Pushing some files to different domains can decrease load times because browsers can load files from multiple domains in parallel instead of serially like they would from one domain.
3) For smaller sites the google CDN is likely actually more dependable than your own. But if you've invested in a CDN this is no longer true.
With jQ, you're most likely defining the version you need, so getting upstream improvements with jQ is a bit more involved than the library simply updating itself if you aren't using the edge version.
A better argument for using a CDN is that jQ library is likely going to be cached if the user's been on the web for more than 5 minutes. Chances are, your version will be one that's cached and, instead of waiting for the downloading of a library that already exists on the users system, the library is immediately loaded and perceived PLT is decreased as a result.
There are also numerous CDNs out there, I would use a fallback stack to ping the next CDN in line as it would be a cold day if every major CDN that hosts jQ were to lose SSL support for a time.
The main reason I think isn't even really #1 (cost) but a general assumption that CDNs are faster than your servers, and the chance that if multiple sites are sharing one of these CDNs, you actually have first-time users who can visit your site a bit faster because they already have that resource cached.
Generally undesirable in a production environment, though.
Isn't this true of every library, framework, language, kernel, etc, that drives websites?
This should never be a consideration. It's not really stealing bandwidth, since all are welcome to download, but the idea that an asset my site (which presumably makes money) needs should be paid for by someone else really is in the same ballpark ethically.