title: what if jquery.js is include into the page twice?
body: <p>If I introduce the jquery.js into the page twice(<strong>unintentional OR intentional</strong>), what will happen?</p>
  
  <p>Is there any mechanism in jquery that can handle this situation? </p>
  
  <p>AFAIK, the later one jquery will overwrite the previous one, and if there is some action binding with the previous one, it will be cleared.</p>
  
  <p>What can I do to avoid the later one overwrite the previous one?</p>
  
  <p>===edited===</p>
  
  <p>I couldn't understand WHY this question got a down vote. Could the people who give the down vote give out the answer?</p>
  
  <p>==edited again==
  @user568458</p>
  
  <p>u r right, now it's the test code:</p>
  
  <pre><code>&lt;html&gt;
  &lt;head&gt;
  &lt;/head&gt;
  &lt;body&gt;
  fast&lt;em id="fast"&gt;&lt;/em&gt;&lt;br&gt;
  slow&lt;em id="slow"&gt;&lt;/em&gt;&lt;br&gt;
  &lt;em id="locker"&gt;&lt;/em&gt;
  &lt;/body&gt;
  &lt;script type="text/javascript"&gt;
  function callback(type){
      document.getElementById(type).innerHTML=" loaded!";
      console.log($.foo);
      console.log($);
      console.log($.foo);
      $("#locker").html(type);
      console.log($("#locker").click);
      $("#locker").click(function(){console.log(type);});
      $.foo = "fast";
      console.log($.foo);
  }
  function ajax(url, type){
      var JSONP = document.createElement('script');
      JSONP.type = "text/javascript";
      JSONP.src = url+"?callback=callback"+type;
      JSONP.async = JSONP.async;
      JSONP.onload=function(){
          callback(type);
      }
      document.getElementsByTagName('head')[0].appendChild(JSONP);
  }
  &lt;/script&gt;
  &lt;script&gt;
  ajax("http://foo.com/jquery.fast.js", "fast");
  ajax("http://foo.com/jquery.slow.js", "slow");
  &lt;/script&gt;
  &lt;/html&gt;
  </code></pre>
  
  <p>it produced the result:</p>
  
  <pre><code>undefined test:12
  function (a,b){return new e.fn.init(a,b,h)} test:13
  undefined test:14
  function (a,c){c==null&amp;&amp;(c=a,a=null);return arguments.length&gt;0?this.bind(b,a,c):this.trigger(b)} test:16 
  fast test:19
  undefined test:12
  function (a,b){return new e.fn.init(a,b,h)} test:13
  undefined test:14
  function (a,c){c==null&amp;&amp;(c=a,a=null);return arguments.length&gt;0?this.bind(b,a,c):this.trigger(b)} test:16 
  fast
  </code></pre>
  
  <p>the token "$" of the previous one(jquery.fast.js) is overwrite by the later(jquery.slow.js) one.</p>
  
  <p>Is there any method to avoid the overwriting?</p>