2012-06-03 43 views
0

只是一个关于处理顺序和DOM处理方式的简单问题。DOM处理和javascript放置

我的理解是,最好的做法是在标记之前包含所有JQuery脚本。在我的情况下,我有一个div容器,可以容纳我身体的大部分元素。其中包括我的页脚,其中有公司名称和年份。目前,我的页面是以模块化方式(header.php,page.php,footer.php)设置的,我希望将我的公司名称和年份包含在footer.php中,因为这显然允许轻松编辑公司名称。我的问题在于希望保持jquery脚本在body之前的格式。有了这种布局,我不能在我的div中包含公司名称而不在我的div中包含jquery脚本。我会告诉你我的意思与伪代码:

它是如何目前设置:

page.php文件

<body> 
<div class="container"> 
    //body elements 
<hr> 
<p>&copy; Company 2012</p> 
</div> 
<script> 
    //some javascript #1 
</script> 
<script> 
    //some javascript #2 
</script> 

footer.php:

<script> //same static javascript that doesn't change page to page </script> 
</body> 

我想怎么设置它可以方便地在整个公司的名称更改:

page.php

<body> 
<div class="container"> 
    //body elements 
<script> 
    //some javascript #1 
</script> 
<script> 
    //some javascript #2 
</script> 

footer.php:

<hr> 
<p>&copy; Company 2012</p> 
</div> 
<script> //same static javascript that doesn't change page to page </script> 
</body> 

我意识到我可以做这种方式,但我害怕,因为我的jQuery脚本将在技术上容器内执行失去的优化。

所有这一切都说,将包括我的jquery脚本在页面的容器的关闭div之前,但在div的所有内容之后,导致它效率低于它在div关闭后的效率?

我意识到所有这一切完全取决于如何处理DOM,但我似乎无法找到任何关于DOM是否处理的信息,或者它是否需要结束标记才能实际处理,这会导致第二种方法变慢。

让我知道,如果我能清除任何东西了。 谢谢

+0

关于页脚中的公司名称,应该在服务器上维护,而不是客户端脚本。 – RobG

回答

0

内联脚本会阻止整个页面的呈现。 (只有Opera做一些渲染)所以它不是问题在哪里你把它们放在你的情况。一般来说,最好把它们放在最后,因为外部文件仍然可以下载,如果启用了刷新功能,则可以渲染

外部脚本只会阻止渲染下面的所有内容。