适用于jQuery的Google AJAX Libraries CDN

时间:2010-03-03 00:25:12

标签: jquery document-ready google-ajax-libraries

我有一个页面,我需要SWFObject,jQuery和Google Maps API。 我认为我可以利用使用的好处:

<script type="text/javascript" src="http://www.google.com/jsapi?key=INSERT-YOUR-KEY"></script>
<script type="text/javascript">
    google.load("jquery", "1.4.1");
    google.load("swfobject", "2.2");
    google.load('maps', '2', {'callback': googleMapSetup });
</script>

但现在我在某处读到了 http://encosia.com/2008/12/10/3-reasons-why-you-should-let-google-host-jquery-for-you/) 我需要使用

google.setOnLoadCallback(function() {
    // Place init code here instead of $(document).ready()
});

而不是$(文件).ready().. 这是真的吗?

1 个答案:

答案 0 :(得分:5)

使用Ajax Libraries API有两种方法。

首先,您可以使用Google托管您的jQuery文件:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

其次,您可以使用它来执行jQuery的异步加载,这就是您所指的。如果你这样做,模式是:

<script type="text/javascript" src="http://www.google.com/jsapi?key=INSERT-YOUR-KEY"></script>
<script type="text/javascript">
  google.load("jquery", "1.4.2");
  google.load("swfobject", "2.2");
  google.load('maps', '2', {'callback': googleMapSetup });
  google.setOnLoadCallback(function() {
    $(function() {
      // Place init code here instead of $(document).ready()
    });
  });
</script>

你必须使用google.setOnLoadCallback()的原因是因为在这种情况下加载jQuery是异步的,所以你需要等待jQuery加载文档准备就绪。

你必须在加载回调中使用jQuery的原因是因为它在你运行Javascript时可能无法在其他地方加载,导致潜在的竞争条件和间歇性错误。