如何在页面末尾加载javascripts

时间:2011-12-21 09:25:07

标签: php javascript html symfony1 pageload

我有一个包含大量js文件的网站,我现在已将它们加载到头部。但我听说这不是一种优化方式,最好在身体末端加载它们。 我怎么能告诉symfony在页面的末尾加载我的所有javascripts(而不是在开头)。由于性能问题,最好在页面加载结束时加载它们(在加载html和css之后)

但我怎么能这样做?我正在使用use_javascript()函数来加载它们。但它将它们加载到页面顶部的头部。有没有办法告诉symfony呢?

感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

打开布局文件 - 默认布局文件是这样的:

apps/frontend/templates/layout.php

查找include_javascripts()来电。剪切&将它粘贴到html的底部,就在正文结束标记之前:

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

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

如果您的代码依赖于某些库(jQuery,MooTools,Prototype等)并且您有一些内联JavaScript代码(非常糟糕的做法),那么您将遇到一些问题,因为您的内联代码将在包含这些代码之前输出库。前面提到的过滤器看起来是一个很好的解决方法。如果您的所有代码都通过use_javascript()函数包含在内,或者您的JavaScript代码没有依赖关系,那么您也不需要它。

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

答案 1 :(得分: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>

答案 2 :(得分:0)

首先,您需要使用DOM或函数JS加载js,

在此处查看实施http://www.gee.web.id/2016/11/solusi-blogspot-untuk-speed-leverage.html

然后执行你的jquery或javascript函数你需要首先加载所有页面而不是创建一个命令函数,实现请在这里cek http://www.gee.web.id/2016/11/how-to-execute-javascript-when-page-has.html