title: avoid loading jquery multiple times
body: <p>using Google Page Speed I can see it seems that Jquery UI and Jquery and other js-libraries are loaded multiple times even though I only include them once in my page:
  <img src="https://i.stack.imgur.com/XnOhF.png" alt="enter image description here"></p>
  
  <p>How can I avoid this ?</p>
  
  <p><strong>UPDATE</strong></p>
  
  <p>My code looks like this (I have removed the main part of the html leaving all the javascript stuff):</p>
  
  <pre><code>&lt;!doctype html&gt;
  &lt;html lang="en" class="no-js" xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#"
  xmlns:fb="http://www.facebook.com/2008/fbml" &gt;
  &lt;head id="hdHead"&gt;&lt;meta charset="UTF-8" /&gt;&lt;meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /&gt;&lt;title&gt;
      My Page
  &lt;/title&gt;
      &lt;!--Utils--&gt;
      &lt;link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="Mysite" /&gt;&lt;meta name="viewport" content="width=980,initial-scale=1.0,maximum-scale=1.0,user-scalable=yes" /&gt;
      &lt;!-- For iPhone 4 with high-resolution Retina display: --&gt;
      &lt;link rel="apple-touch-icon-precomposed" sizes="114x114" href="/css/touch/gfx/hs-icons/h/apple-touch-icon.png" /&gt;
      &lt;!-- For first-generation iPad: --&gt;
      &lt;link rel="apple-touch-icon-precomposed" sizes="72x72" href="/css/touch/gfx/hs-icons/m/apple-touch-icon.png" /&gt;
      &lt;!-- For non-Retina iPhone, iPod Touch, and Android 2.1+ devices: --&gt;
      &lt;link rel="apple-touch-icon-precomposed" href="/css/touch/gfx/hs-icons/l/apple-touch-icon-precomposed.png" /&gt;
      &lt;!-- For nokia devices: --&gt;
      &lt;link rel="shortcut icon" href="/css/touch/gfx/hs-icons/l/apple-touch-icon.png" /&gt;&lt;link rel="shortcut icon" href="/css/gfx/favicon.ico" /&gt;
      &lt;!-- W3C way of 2005 for XHTML1.0 http://www.w3.org/2005/10/howto-favicon --&gt;
      &lt;link rel="icon" type="image/png" href="/css/gfx/myspot.ico" /&gt;
      &lt;!--Styles--&gt;
      &lt;link href="/plugins/jqueryui/css/custom-theme/jquery-ui-1.8.13.custom.css" rel="stylesheet" type="text/css" /&gt;&lt;link rel="stylesheet" href="/css/desktop/myspot.min.css?v=2803" /&gt;
      &lt;!--[if lt IE 9]&gt;
      &lt;link rel="stylesheet" href="/css/desktop/myspotoldie.css?v=0114" /&gt;
      &lt;![endif]--&gt;
      &lt;!--[if IE]&gt;
      &lt;link rel="stylesheet" href="/css/desktop/myspotie.css?v=0114" /&gt;
      &lt;![endif]--&gt;
      &lt;!--scripts (more in page bottom--&gt;
      &lt;script src="/scripts/libs/modernizr-1.7.min.js" type="text/javascript"&gt;&lt;/script&gt;
      &lt;script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"&gt;&lt;/script&gt;
      &lt;script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/jquery-ui.min.js"
          type="text/javascript"&gt;&lt;/script&gt;
      &lt;script type="text/javascript"&gt;
          if (typeof jQuery == 'undefined') {
              console.log("no jquery");
              document.write(unescape('%3Cscript src="/scripts/libs/jquery-1.7.min.js"%3E%3C/script%3E'));
          }
          if (typeof jQuery.ui == 'undefined') {
              console.log("no jquery ui");
              document.write(unescape('%3Cscript src="plugins/jqueryui/jquery-ui-1.8.11.min.js"%3E%3C/script%3E'));
          }
          var defText = 'Restaurant ved åen...';
      &lt;/script&gt;
      &lt;script src="/scripts/desktop/behavior.min.js?v=2803" type="text/javascript"&gt;&lt;/script&gt;
      &lt;script type="text/javascript" src="/scripts/libs/jquery.cookie.js"&gt;&lt;/script&gt;
  
      &lt;!--do not move recordOutboundLink to bottom --&gt;
      &lt;script type='text/javascript'&gt;
          var googletag = googletag || {};
          googletag.cmd = googletag.cmd || [];
          (function () {
              var gads = document.createElement('script');
              gads.async = true;
              gads.type = 'text/javascript';
              var useSSL = 'https:' == document.location.protocol;
              gads.src = (useSSL ? 'https:' : 'http:') +
  '//www.googletagservices.com/tag/js/gpt.js';
              var node = document.getElementsByTagName('script')[0];
              node.parentNode.insertBefore(gads, node);
          })();
  &lt;/script&gt;
  
  &lt;script type='text/javascript'&gt;
      googletag.cmd.push(function () {
          googletag.defineSlot('/1025597/Place_main_bottom', [468, 60], 'div-gpt-ad-1328824112752-0').addService(googletag.pubads());
          googletag.defineSlot('/1025597/Place_sidebar_bottom', [160, 600], 'div-gpt-ad-1328824112752-1').addService(googletag.pubads());
          googletag.defineSlot('/1025597/Place_sidebar_middle', [234, 60], 'div-gpt-ad-1328824112752-2').addService(googletag.pubads());
          googletag.defineSlot('/1025597/Search_main_bottom', [468, 60], 'div-gpt-ad-1328824112752-3').addService(googletag.pubads());
          googletag.defineSlot('/1025597/Search_sidebar_1', [234, 60], 'div-gpt-ad-1328824112752-4').addService(googletag.pubads());
          googletag.defineSlot('/1025597/Search_sidebar_2', [234, 60], 'div-gpt-ad-1328824112752-5').addService(googletag.pubads());
          googletag.defineSlot('/1025597/Search_sidebar_3', [234, 60], 'div-gpt-ad-1328824112752-6').addService(googletag.pubads());
          googletag.defineSlot('/1025597/Search_sidebar_4', [234, 60], 'div-gpt-ad-1328824112752-7').addService(googletag.pubads());
          googletag.defineSlot('/1025597/Search_sidebar_5', [234, 60], 'div-gpt-ad-1328824112752-8').addService(googletag.pubads());
          googletag.pubads().enableSingleRequest();
          googletag.enableServices();
      });
  &lt;/script&gt;
  
  
      &lt;script type="text/javascript"&gt;
          //Tabs
          jQuery(document).ready(function () {
              jTabs = jQuery("#tabs").tabs({
  
                  select: function (event, ui) {
                      try {
                          var newhasharr = ui.tab.toString().split("#");
                          window.location.hash = newhasharr[1];
                      }
                      catch (err) {
                      }
                  }
              });
              LoadTabFromHash();
              function LoadTabFromHash() {
                  try {
                      var hash = window.location.hash.replace('#', '');
                      if (hash != '') {
                          jTabs.tabs("select", hash);
                      }
                  }
                  catch (err) {
                  }
              }
              jQuery(".jclickatab").click(function (ev) {
                  ev.preventDefault();
                  var hash = jQuery(this).attr("href").replace("#", "");
                  if (hash != '') {
                      jTabs.tabs("select", hash)
                  }
              });
          });
      &lt;/script&gt;
  
          &lt;script type="text/javascript" src="http://yandex.st/jquery/fancybox/1.3.4/jquery.fancybox.min.js"&gt;&lt;/script&gt;
  &lt;/head&gt;
  
  &lt;body&gt;
  
      &lt;form method="post" action="/mypage" onsubmit="javascript:return WebForm_OnSubmit();" id="Form1"&gt;
  &lt;div class="aspNetHidden"&gt;
  &lt;/div&gt;
  
  &lt;script type="text/javascript"&gt;
  //&lt;![CDATA[
  function WebForm_OnSubmit() {
  ChangeColourOfInvalidControls();
  return true;
  }
  //]]&gt;
  &lt;/script&gt;
  
      &lt;div id="fb-root"&gt;
      &lt;/div&gt;
      &lt;script type="text/javascript"&gt;
      window.fbAsyncInit = function () {
          FB.init({
              appId: '139505527456',
              channelUrl: '//www.myspot.dk/channel.html',
              status: true,
              cookie: true,
              xfbml: true  
          });
      };
  
      // Load the SDK Asynchronously
      (function (d) {
          var js, id = 'facebook-jssdk'; if (d.getElementById(id)) { return; }
          js = d.createElement('script'); js.id = id; js.async = true;
          js.src = "//connect.facebook.net/da_DK/all.js";
          d.getElementsByTagName('head')[0].appendChild(js);
      } (document));
      &lt;/script&gt;
  
  
      &lt;div id="container" class="placepage"&gt;
  
              &lt;!-- AddThis Buttons BEGIN --&gt;
              &lt;div class="addthis_toolbox addthis_default_style addthis_32x32_style"&gt;
                  &lt;a class="addthis_button_facebook_like" fb:like:layout="button_count" fb:like:width="105"&gt;
                  &lt;/a&gt;
              &lt;/div&gt;
              &lt;div class="addthis_toolbox addthis_default_style addthis_32x32_style"&gt;
                  &lt;a class="addthis_button_google_plusone"&gt;&lt;/a&gt;
              &lt;/div&gt;
              &lt;script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=myspot"&gt;&lt;/script&gt;
              &lt;!-- AddThis Buttons END --&gt;
          &lt;/div&gt;
  &lt;script&gt;
      jQuery(document).ready(function () {
          TidyUpPlaceImages();
  
          jQuery(".mainplacepix a").fancybox({
              'type': 'image',
              'transitionIn': 'elastic',
              'transitionOut': 'elastic',
              'speedIn': 600,
              'speedOut': 200,
              'titlePosition': 'over',
              'overlayShow': false,
              'showNavArrows': true
          });
      });
      function TidyUpPlaceImages() {
          var mainImageHeight = jQuery(".mainplacepix a:first").height();
          var thumbsHeight = 0;
          jQuery(".mainplacepix a:gt(0)").each(function (index) {
              thumbsHeight += jQuery(this).height();
              if (thumbsHeight &lt;= mainImageHeight) {
                  jQuery(this).show();
              }
              else {
                  return;
              }
          });
      }
  &lt;/script&gt;
  
  &lt;script type="text/javascript"&gt;
  
  jQuery(document).ready(function () {
      jQuery('#txtReviewBody').keyup(function(event) {
          if(jQuery(this).val().length&gt;50 &amp;&amp; !jQuery('#reviewparametercontainer').is(":visible")) {
              jQuery('#reviewparametercontainer').slideDown();
              _gaq.push(['_trackEvent', 'Reviews', 'LenghtAbove50', 'empty']);
          }
      }).blur(function() {
          if(jQuery(this).val().trim().length&lt;1) {
              jQuery('#reviewparametercontainer').slideUp();
              _gaq.push(['_trackEvent', 'Reviews', 'BlurWithoutWriting', 'empty']);
          }
      });
      jQuery(".writeReviewDatePicker").datepicker(
      {
      maxDate: new Date()
      });
  })
  
  &lt;/script&gt;
  
  &lt;script type="text/javascript"&gt;
      var reviewErrorMess = 'Some error';
      var ratingErrorMess = 'Some error';
      var reviewScriptErrorMess = 'Some error';
      function validateReviewForm() {
          var imValid = true;
          var reviewlength = jQuery('#txtReviewBody').val().length;
          var myspotrating = jQuery('#rating input[type="hidden"]').val().length;
          if (reviewlength &lt; 2) {
              setErrorFeedbackToTheRight(jQuery('#txtReviewBody'), reviewErrorMess);
              imValid = false;
          }
          else {
              if (jQuery('#txtReviewBody').val().indexOf('&lt;') &gt; -1) {
                  setErrorFeedbackToTheRight(jQuery('#txtReviewBody'), reviewScriptErrorMess);
                  imValid = false;
              }
          }
          if (rating &lt; 1) {
              setErrorFeedbackToTheRight(jQuery('#rating'), ratingErrorMess);
              imValid = false;
          }
  
          return imValid;
      }
      jQuery(document).ready(function () {
          jQuery('#ratingmyspot.error').live('click', function () {
              removeErrorFeedback(jQuery(this));
          });
          jQuery('textarea.error').live('keyup', function () {
              removeErrorFeedback(jQuery(this));
          });
          jQuery('#ddlTypes').change(function (ev) {
              FilterReviewParams(jQuery(this).val());
          });
          FilterReviewParams(jQuery('#ddlTypes').val());
      });
      function FilterReviewParams(categoryId) {
          var selector = '#reviewParameters .ratingcontrol.' + categoryId;
          var jAll = jQuery('#reviewParameters .ratingcontrol:visible');
          if (jAll.length &gt; 0) {
              jAll.hide({
                  duration: 1000,
                  complete: function () {
                      jQuery(selector).show(1000);
                  }
              });
          }
          else {
              jQuery(selector).show(1000);
          }
  
      }
  &lt;/script&gt;
  
  
  
  &lt;script type="text/javascript"&gt;
      jQuery(document).ready(function () {
          jQuery('#listOfOffers input[type="submit"]').button();
          if (jQuery(".offersFromDateTimePicker").length &gt; 0) {
              jQuery(".offersFromDateTimePicker").datetimepicker({
                  onSelect: function (selectedDate, sender) {
                      setMinDateTime(selectedDate, ".offersEndDateTimePicker");
                  }
              });
              var minDate = jQuery(".offersFromDateTimePicker").val();
              jQuery(".offersEndDateTimePicker").datetimepicker({
                  minDate: minDate
              });
          }
      });
  &lt;/script&gt;
  &lt;script type="text/javascript"&gt;
      jQuery(document).ready(function () {
          jQuery('#placepageevents input[type="submit"]').button();
  
          if (jQuery(".eventsFromDateTimePicker").length &gt; 0) {
              jQuery(".eventsFromDateTimePicker").datetimepicker({
                  onSelect: function (selectedDate, sender) {
                      setMinDateTime(selectedDate, ".eventsEndDateTimePicker");
                  }
              });
              var minDate = jQuery(".eventsFromDateTimePicker").val();
              jQuery(".eventsEndDateTimePicker").datetimepicker({
                  minDate: minDate
              });
          }
      });
  &lt;/script&gt;
          &lt;script type="text/javascript"&gt;
              jQuery(document).ready(function () {
                  jQuery(".aboutplaceimages a").fancybox({
                      'type': 'image',
                      'transitionIn': 'elastic',
                      'transitionOut': 'elastic',
                      'speedIn': 600,
                      'speedOut': 200,
                      'titlePosition': 'over',
                      'overlayShow': false,
                      'showNavArrows': true
                  });
              });
          &lt;/script&gt;
          &lt;/footer&gt;
  
  
      &lt;script src="/scripts/libs/jquery.highlightFade.js" type="text/javascript"&gt;&lt;/script&gt;
      &lt;script src="/plugins/jqueryui/jquery-ui-timepicker-addon.js" type="text/javascript"&gt;&lt;/script&gt;
      &lt;script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"&gt;&lt;/script&gt;
      &lt;script type="text/javascript" src="/scripts/desktop/mygmap.js"&gt;&lt;/script&gt;
      &lt;script type="text/javascript" src="/scripts/desktop/place.min.js?v=0310a"&gt;&lt;/script&gt;
  
  
      &lt;/script&gt;
       &lt;script type='text/javascript'&gt;
          jQuery.ajax({
              url: 'http://demo.easyrec.org:8080/api-js/easyrec.js',
              dataType: "script",
              success: function () {
                  if (typeof (easyrec_sendAction) != "undefined") {
                      easyrec_sendAction("view",
                      {
                          itemId: "48863",
                          itemUrl: "/mypage",
                          itemDescription: "Mypage",
                      });
                  }
              }
          }); 
      &lt;/script&gt;
  
      &lt;link rel="stylesheet" href="/plugins/jquery.fancybox-1.3.4/fancybox/jquery.fancybox-1.3.4.css"
      type="text/css" media="screen" /&gt;
      &lt;script src="/plugins/jqueryui/jquery.ui.datepicker-da.js"     type="text/javascript"&gt;&lt;/script&gt;
               &lt;script type="text/javascript" src="/scripts/libs/jquery.lazyload.min.js"&gt;&lt;/script&gt;
      &lt;script type="text/javascript"&gt;
          jQuery(document).ready(function () {
              jQuery("img.lazy").lazyload();
          });
  
  &lt;/script&gt;
  
  
  
  &lt;script type="text/javascript"&gt;
  //&lt;![CDATA[
  var theForm = document.forms['Form1'];
  if (!theForm) {
      theForm = document.Form1;
  }
  function __doPostBack(eventTarget, eventArgument) {
      if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
          theForm.__EVENTTARGET.value = eventTarget;
          theForm.__EVENTARGUMENT.value = eventArgument;
          theForm.submit();
      }
  }
  //]]&gt;
  &lt;/script&gt;
  
  
  &lt;/form&gt;
  &lt;/body&gt;
  &lt;/html&gt;
  </code></pre>
  
  <p>thanks,</p>
  
  <p>Thomas</p>