A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 何红卫 于 2013-3-24 18:30 编辑

今天学习javascript,因为没做我实际项目,不知道avascript代码究竟放在<head>里面效率高还是放<body>你效率高。查了几本书,也百度了,有书说对于很多JavaScript代码都放在<head>里的话意味着必须等全部JavaScript代码都被下载、解析和执行完成以后才能开始呈现页面的内容,这样呈现页面的时候会出现延迟,而延迟过程中浏览器窗口中将是一片空白,而放在<body>内容的最后面则可避免这种情况。也有书说把JavaScript代码放在<head>里可确保在需要使用脚本之前,它已经被载入,可加快页面的下载速度。
究竟哪个是对的啊,还是对不同的javascript要区别对待,求详解。

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

11 个回复

倒序浏览
1. JavaScript代码放到<script>标签中,script可以放到<head>,<body>等任何位置,而且可以有不止一个<script>标签;
2. 放到<head>中的<script>在body加载之前就已经运行了;
3. 写在body中的<script>是随着页面的加载而一个个执行的。

评分

参与人数 1技术分 +1 收起 理由
邓艳秋 + 1

查看全部评分

回复 使用道具 举报
个人了解....,当你留心观察你打开某个网页时(特别是网速不好的时候),一般先是显示静态页面,等静态页面完全显示了,才有动态效果,所以可以放在<body>的最后,这样等加载完静态,再加载javascript代码....这样可能打开网页的速度给用户感觉会好点,...

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
JavaScript可以写在页面的任何位置,一般都写在head标签中。
执行顺序是:顺序执行。
JavaScript的封装库----JQuery:”网页中所有DOM结构绘制完毕后就执行,可能DOM元素关联的东西并没有加载完“
使用JQuery不用顾虑页面元素是否加载完。
至于效率高低的考虑,我们初学者先不去深究吧

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
不管是JavaScript还是其他的脚本语言,都是可以写在页面的任何位置的,跟下载速度什么的没有必然的关系,跟加载没加载完更没有关系。代码顺序编译,只要事件被触发了就会被执行。
一般大家都喜欢写在<head>里,便于跟<body>里的HTML标签区分,在执行和编译这方面,写在哪里并不影响。

评分

参与人数 1技术分 +1 收起 理由
邓艳秋 + 1

查看全部评分

回复 使用道具 举报
当然是放在<body>中,js是解释语言,从上到下,一行一行执行,根据就近原则
回复 使用道具 举报
回复半天都没有一个正面回答我的问题,我问的是哪个效率高,放哪里合适。
回复 使用道具 举报
何红卫 发表于 2013-3-23 23:17
回复半天都没有一个正面回答我的问题,我问的是哪个效率高,放哪里合适。 ...

放哪里都合适。。。效率是一样的
回复 使用道具 举报
个人认为是具体喜好情况而定吧!
回复 使用道具 举报
邓艳秋 发表于 2013-3-24 14:14
放哪里都合适。。。效率是一样的

shit   怎么可以这样 ?我觉得放在最后面的效率最好了
回复 使用道具 举报
放在最后好 因为浏览器解析的过程中 先解析了js  但是没有对象 就会等着其它的加载完在进行对接。如果放在最后面加载 前面的 dom对象都加载完了 js代码的解析就会快很多  但是 我们一般都看不出来

评分

参与人数 1技术分 +1 收起 理由
邓艳秋 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 管章鹏 于 2013-3-29 15:16 编辑

在HTML body部分中的JavaScripts会在页面加载的时候被执行。而在HTML head部分中的JavaScripts会在被调用的时候才执行。页面中的JavaScripts会在浏览器加载页面的时候被立即执行,我们并不希望总是这样,有时候我们想让一段脚本在页面加载的时候执行,而有时候我们想在用户触发一个事件的时候执行脚本。而head 部分中的脚本: 需调用才执行的脚本或事件触发执行的脚本放在HTML的head部分中。当你把脚本放在head部分中时,可以保证脚本在任何调用之前被加载。
1、将JavaScript标识放置<Head>... </Head>在头部之间,使之在主页和其余部分代码之前预先装载,从而可使代码的功能更强大; 比如对*.js文件的提前调用。 也就是说把代码放在<head>区在页面载入的时候,就同时载入了代码,你在<body>区调用时就不需要再载入代码了,速度就提高了,这种区别在小程序上是看不出的,当运行很大很复杂的程序时,就可以看出了。当然也可以将JavaScript标识放置在<Body>... </Body>主体之间以实现某些部分动态地创建文档。 这里比如制作鼠标跟随事件,肯定只有当页面加载后再进行对鼠标坐标的计算。或者是filter滤镜与javascript的联合使用产生的图片淡入淡出效果

2、放入html的head,是页面加载前就运行,放入body中,则加载后才运行javascript的代码~~~所以head里面的先执行。

3:要是function就没有区别要是<script>alert(1)</script>会跟放的位置有关一个事head加载完就 alert 一个是要跟在body中加载循序alert

客户端脚本一般放在 <head> </head> 之间,而且要用 <!--       -->       把代码括起来。      
    如果浏览器不支持此脚本,那么浏览器会      
    跳过它,不去执行,也不会提出错误信息

我到网上查了一下,w3c建议JavaScript应该放到head标签中


希望对你有帮助!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马