在HTML中使用JavaScript方法:
1、页面中插入script标签
2、HTML的DOM节点中直接插入js代码
HTML规范中,script标签有6个属性
1、async,异步下载,规定异步执行脚本(只对外部脚本有效);
2、charset,规定字符编码;
3、defer,延迟执行,是否延迟(只对外部脚本有效);
4、language,规定脚本语言,被废弃,建议使用type代替;
5、src,代表地址;
6、type,可看成language的替代品,指示脚本的MIME类型;
用script标签会遇到的问题
1、包含在script标签里的javascript会从上到下依次解释(坑)执行;
解释分两步:预处理和执行,JS是一种阻断式语言,它运行时,其他东西都不能干。
2、一定要使用<script></script>把它闭合掉;
script若既引用了外部文件,又写了js代码,那么内部代码会被忽略。
跨域
好处:若引外部js文件,便于维护,可以引入外部资源
坏处:若有人使坏,则对自身安全有威胁
script标签位置
传统:放head标签内
开发中:一般不放head里,因为js是一种阻断式语言,若放在开头并且文件特别大时,则它在加载时,整个页面加载全部被阻断,用户体验很不好,所以,一般把js文件放在页面最底下,在页面加载时,还没执行到js,可以先把页面呈现给用户。(若js文件放在页面最底下,不好使时,或者使用某些框架或库时,有特别提示,则一定要放头部。归纳:如果js一定要在页面渲染之前执行的话,那么要放在head里,一般是和css相关的js)
可用延迟执行解决这个问题,但存在问题,即虽然一个js文件设置了延迟时间,HMTL规范也规定js要按脚本先后顺序加载,但是某些公司并不遵守这个规范,一旦遇到两个脚本之间有关联关系,加载先后顺序有要求,则会出问题,异步下载问题同此。
所以,开发中到底该引用外部文件还是内部文件呢?
内部文件相对外部文件最大的好处是性能好,因为外部文件都是要一次请求,性能有提升,这种性能提升在手机上特别明显,所以需要权衡。
可缓存, 开发中浏览器会自动缓存;
解决:
1、设置浏览器禁用缓存;
2、在引用的js后面加个随机数可以避免缓存;