JQuery SSL Certificates Expire
code.jquery.com
code.jquery.com
"It’s hard to blame users for not being interested in SSL and certificates when (as far as we can determine) 100% of all certificate errors seen by users are false positives."
https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.m...
http://www.sslshopper.com/article-ssl-certificate-renewal-ev...
http://cdnjs.com/ http://www.jsdelivr.com/ http://www.asp.net/ajaxlibrary/cdn.ashx
For example, the OP's link's cache will expire (theoretically) in the year 2079. So if a user visited ANY page that utilises JQuery v1.10.2 they already have it. That is a HUGE win. It is an even huger win for mobile (e.g. for small sites you could cut your network traffic in half, which in turn increases loading speed).
It is also trivial to set it up so the page tries the CDN first and if that fails then grab a local copy e.g.
<script src="//code.jquery.com/jquery-1.10.2.js"></script> <script>window.jQuery || document.write('<script src="lib/jquery-1.10.2.js">\x3C/script>')</script>
<script>window.jQuery || document.write('<script src="js/jquery-2.0.0.min.js">\x3C/script>')</script>
I use to use the Google CDN but cdnjs.com has a huge amount of javascript libraries hosted on it and it is usually updated faster.
http://stackoverflow.com/questions/11726451/ajax-call-to-res...
I understand the difficulties would be many (trusted sources, versioning, etc.) but I bet it would have a huge impact on the overall web's bandwidth consumption if a page could say "load standard jQuery v1.10.2 on this page, if not cached find it here or here".
facepalm
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.