2011-12-21 66 views
0

我有一个网站有很多js文件,现在我已经将它们加载到头部。但是我听说这不是一个优化的方法,最好在主体结束时加载它们。 我怎么能告诉symfony加载所有的JavaScript在页面的结尾(不是在开始)。由于性能问题,最好在页面加载结束时加载它们(在加载html和css之后)如何在页面末尾加载javascripts

但是我该怎么做?我使用use_javascript()函数来加载它们。但它会将它们加载到页面顶部的头部。有没有办法告诉symfony做到这一点?

感谢您的帮助。

回答

0

据对.getScript()http://api.jquery.com/jQuery.getScript/ jQuery的文档,你可以做这样的事情:

<html> 
<head> 
</head> 
<body> 

//HTML tags ..... 

<script> 
$.getScript('ajax/test.js', function(data, textStatus){ 
    console.log(data); //data returned 
    console.log(textStatus); //success 
    console.log('Load was performed.'); 
}); 
</script> 

</body> 
</html> 
3

打开你的布局文件 - 默认的是类似的东西:

apps/frontend/templates/layout.php 

寻找include_javascripts()电话。切&粘贴在HTML的底部,只是身体结束标记之前:

<?php include_javascripts() ?> 
    </body> 
</html> 

瞧!所有的JavaScript文件都包含在页面的底部。

如果您的代码依赖于某些库(jQuery的,MooTools的,原型等),你有一些内嵌的JavaScript代码(非常糟糕的做法),你将有一些问题,因为你的内嵌代码会列入前outputed这些图书馆。前面提到的过滤器看起来是一个很好的解决方法。如果通过use_javascript()函数包含所有代码,或者您的JavaScript代码没有依赖关系,那么您再也不需要它了。

还有一件事。如果你想真正优化你的代码,你应该尽可能少地提出请求。一个好的做法是将所有.js文件合并成一个,将所有内容缩小并将其包含在您的应用中。

相关问题