Loading jQuery from Google or locally if not online

18,699

Solution 1

Sure, check out how they do it in HTML5 boilerplate.

If you take a look at the bottom of the index.html file within the GitHub repo, you'll see the following...

<!-- Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if offline -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/X.X.X/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="local/jquery-X.X.X.min.js">\x3C/script>')</script>

NB: In the code snippet above X.X.X should be replaced with the jQuery version number that you're using (e.g. 1.8.2).

How does it work?

  1. First, an attempt is made to grab the CDN version (Google's CDN url is used above, but of course you could link to any source you like).
  2. Immediately afterwards, we check for the jQuery global object.
  3. If jQuery does not exist, the obvious assumption is that we didn't manage to get the code from the CDN, so then we document.write a script tag to get a copy from a local source instead.

Solution 2

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")">\x3C/script>')</script>
Share:
18,699

Related videos on Youtube

JudyJ
Author by

JudyJ

Updated on February 07, 2020

Comments

  • JudyJ
    JudyJ over 4 years

    Right now I have the following links in my code:

    <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
    

    etc ...

    I'd like to make use of the google.com cached copies. I heard google is the best source but please correct me if I am wrong.

    Anyway is it possible for me to code my application so it uses code from google if available and locally if not. FYI I am using Microsoft MVC3 and the Msoft cloud servers.

    Thanks

  • ThiefMaster
    ThiefMaster about 13 years
    Depending on how you connection is "not online" it might take a long time though due to timeouts.
  • isNaN1247
    isNaN1247 about 13 years
    @TheifMaster Whilst I agree that performance wouldn't be great, this fallback is meant for when Googles CDN has failed to serve us. Not only would most people have a cached copy - those that didn't would be seeing a lot of ugly/broken sites online - whilst yours (with this fallback) would just be a bit slow
  • harpo
    harpo almost 11 years
    @beardtwizzle, it is more than a bit slow these days. I do a great deal of development offline, and it seems that the latest browsers (Firefox at least) wait much longer than it used to for these requests to resolve; meanwhile, your script is blocking.
  • MartyIX
    MartyIX almost 9 years
    Please see stackoverflow.com/questions/8231048/… if you wonder about \x3C :-)
  • Underverse
    Underverse almost 8 years
    Pity StackExchange does not use this fallback method. For any place which firewalls googleapis.com StackExchange pages will load but logon and feedback is disabled.