FFi*_*ish 4 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>
Run Code Online (Sandbox Code Playgroud)
但是现在我在某处读到了(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()
});
Run Code Online (Sandbox Code Playgroud)
而不是$(document).ready()..这是真的吗?
有两种使用Ajax Libraries API的方法.
首先,您可以使用Google来托管您的jQuery文件:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
其次,您可以使用它来执行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>
Run Code Online (Sandbox Code Playgroud)
你必须使用的原因google.setOnLoadCallback()是因为在这种情况下加载jQuery是异步的,所以你需要等待加载jQuery 并准备好文档.
你必须在加载回调中使用jQuery的原因是因为它在你运行Javascript时可能无法在其他任何地方加载,从而导致潜在的竞争条件和间歇性错误.
| 归档时间: |
|
| 查看次数: |
8380 次 |
| 最近记录: |