博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js为什么放到head中有时候失效
阅读量:5813 次
发布时间:2019-06-18

本文共 897 字,大约阅读时间需要 2 分钟。

1.今天写js碰到一个奇怪的问题,写好的js放到body里面执行,但是放到head中没有任何效果,为什么导致这种原因呢?

看失效代码:

    new document   

2.解决办法:把js代码放到body中,或者利用    window.onload = function(){}代码包裹,文档加载之后再执行,以后不建议放到head中。

    new document   

3.原因:

因为 文档还没加载,就读了js,js就不起作用了想在head里用的话,用window.onload = function(){//这里包裹你的代码}

js可以分为外部的和内部的,外部的js一般放到head内。内部的js也叫本页面的JS脚本,

内部的js一般放到body内,这样做的目的有很多:

1.不阻塞页面的加载(事实上js会被缓存)。

2.可以直接在js里操作dom,这时候dom是准备好的,即保证js运行时dom是存在的。

3.建议的方式是放在页面底部,监听window.onload 或 readystate 来触发js。

4.延伸:

head内的js会阻塞页面的传输和页面的渲染。head 内的 JavaScript 需要执行结束才开始渲染 body,所以尽量不要将 JS 文件放在 head 内。可以选择在 document 完成时,或者特定区块后引入和执行 JavaScript。head 内的 JavaScript 需要执行结束才开始渲染 body,所以尽量不要将 JS 文件放在 head 内。可以选择在 document 完成时,或者特定区块后引入和执行 JavaScript。

所以在head内的js一般要先执行完后,才开始渲染body页面。为了避免head引入的js脚本阻塞流浪器中主解析引擎对dom的解析工作,对dom的渲染,一般原则是,样式在前面,dom文档,脚本在最后面。遵循先解析再渲染再执行script这个顺序。

转载地址:http://kytbx.baihongyu.com/

你可能感兴趣的文章
linux日志:syslogd和klogd及syslog
查看>>
Python模块学习笔记— —time与datatime
查看>>
python调用windows api
查看>>
linux添加somebody到组
查看>>
Linux内核中的printf实现【转】
查看>>
第四章 mybatis批量insert
查看>>
Dom4j生成xml
查看>>
rsync算法原理和工作流程分析
查看>>
Java并发框架——什么是AQS框架
查看>>
pthread_cleanup_push
查看>>
【数据库】
查看>>
spring框架中的@Import注解
查看>>
How to set the initial value of a select element using AngularJS ng-options & track by
查看>>
feginclient和ribbon的重试策略
查看>>
从一次线上故障思考Java问题定位思路
查看>>
Win配置Apache+mod_wsgi+django环境+域名
查看>>
第四届中国汽车产业信息化技术创新峰会将于6月在沪召开
查看>>
linux清除文件内容
查看>>
区块链技术综述
查看>>
翻译 | 3种方式提升云可扩展性
查看>>