【问题标题】:how to load javascripts at the end of the page如何在页面末尾加载 javascripts
【发布时间】:2011-12-21 09:25:06
【问题描述】:

我有一个包含很多 js 文件的网站,我现在已经将它们加载到 head 中。但我听说这不是一种优化方式,最好在正文结束时加载它们。 我如何告诉 symfony 在页面末尾(而不是开头)加载我所有的 javascript。由于性能问题,最好在页面加载结束时加载它们(在加载 html 和 css 之后)

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

感谢您的帮助。

【问题讨论】:

    标签: php javascript html symfony1 pageload


    【解决方案1】:

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

    apps/frontend/templates/layout.php
    

    寻找include_javascripts() 电话。将其剪切并粘贴到 html 的底部,就在正文结束标记之前:

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

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

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

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

    【讨论】:

      【解决方案2】:

      根据 .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】:

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

        在这里查看实现http://www.gee.web.id/2016/11/solusi-blogspot-untuk-speed-leverage.html

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-03-08
          • 1970-01-01
          • 2014-06-20
          • 2018-07-28
          • 2020-05-23
          相关资源
          最近更新 更多