2010-12-09 54 views
5

我正在建立一个面向公众的网站,我使用了很多jQuery和jQueryUI。我注意到的是,大多数使用jQuery和jQueryUI的互联网站点在他们的页面中没有这样的代码。如何在面向公众的网站上添加JavaScript?

<script type="text/javascript"> 
    $(document).ready(function(){ 

    $("a").click(function(event){ 
     alert("Thanks for visiting!"); 
    }); 

    $("input:submit").button(); 
    }); 
</script> 

我知道这是一个简单的例子,但是大多数网站,例如SO有包括所有页面只有一个模糊的JS文件。它甚至不像他们在任何地方使用$(document).ready。在我目前的网站上,似乎需要为每个页面包含一个js文件。我的问题是它是如何做的,是否有一个关于如何在页面中使用/包含JavaScript的最佳做法?

+0

如果您有许多不是特定于单个页面的功能,请将其放入外部文件并引用它以提供重用性。 – 2010-12-09 16:45:15

回答

3

根据W3C你可以把脚本几乎任何地方:http://www.w3schools.com/js/js_whereto.asp

那么,你应该把它们?

Ege很正确地说你应该尽可能将它们放在页面的尽可能远的位置,因为它可以使浏览器在获得'阻塞'脚本之前先并行地加载更多的内容。请参阅此处了解更多详细信息:http://developer.yahoo.com/performance/rules.html#js_bottom

另外,将脚本(和CSS)放入外部文件以使浏览器可以缓存它们,从而使用户不必每次都下载页面时间。

就我个人而言,我总是使用CDN作为脚本框架,如jQuery等,因为它们可以提供比您可能的更快的外部资源。另外,浏览器已经从相同的CDN中为另一个站点缓存jQuery的可能性更大。更多详细信息,请访问:http://code.google.com/apis/libraries/devguide.html

最后,使用$(document).ready没有任何问题,但要注意这可能会影响站点的响应能力,并且其优点可能不会超出其缺点。再次,这里更详细:http://encosia.com/2010/08/18/dont-let-jquerys-document-ready-slow-you-down/

希望这有助于。

4

你不会看到着名的document.ready,因为大部分代码通常都被压缩到一个大文件中进行缓存。只是包括您在身体像结束JS:

<script type="text/javascript" src="site.js"></script> 

所以这可以一劳永逸地为每个页面缓存。

+0

为什么SO site.js文件包含在顶部与底部? – Lukasz 2010-12-09 16:51:40

1

无论您在顶部还是底部包含'site.js'文件都没有关系,除非您的JavaScript正在执行document.write以将某些内容放在页面上。然后,当然,在顶部将是理想的。有些人喜欢它在底部,以便在下载js文件之前加载页面的其余部分,如果它是一个大文件,有时可能会延迟页面加载。

相关问题