Html 中如何使用javaScript

214 阅读3分钟

主要内容

  • 如何使用script元素
  • 嵌入脚本与外部脚本
  • 文档模式对js的影响
  • 考虑到如果js被禁用的情况

script元素属性

  • async(异步)可以立刻下载脚本,不妨碍页面中的其它操作。只对外部脚本文件有效。
  • charset 表示src属性指定代码的字符集。
  • defer 表示脚本会延迟到文档完全被解析了之后在执行,支队外部脚本有效
  • src 表示要执行的外部文件
  • type 表示编写脚本代码的语言内容类型MIME。

经验

  • js脚本中不能出现单独的</script> 或者 <script> 不然会报错。要使用转义字符/。 这种是一种语法的解析错误,属于解析器的规则。
  • 引入外部js的文件后坠不是必须的,浏览器不会检查包含js文件的扩展名。这样无论文件本身是什么后缀,jsp,php 只要里面是js代码都可以在浏览器端运行。但是服务端通常是需要查看扩展名的。
  • 嵌入代码忽略:如果在使用src来引入外部js,那么嵌入的代码会被忽略。
  • src属性可以包含来自外部域的js文件,这一点是</script>元素很强。可以用来解决跨域,不过这意味着你所访问的外部域必须是稳定安全可信任的,否则一旦你所请求的资源被冒充或者替换,那么你很可能中病毒,或者被窃取信息。
  • 无论任何代码,如果不存在defer和async,那么都会按照从1-n的顺序执行。

标签的位置

很久之前js被放在head里执行,而浏览器在遇到body的时候才会开始呈现内容,如果有很多脚本要加载,那么可能有很久的空白期,所以一般js会放在内容后面。保证先呈现内容在运行脚本下载。

  • defer延迟脚本,虽然规则上是按他们出现的先后顺序执行,但是现实却并不一定是这样。
  • async 更是不能保证按照先后顺序执行,脚本互相没有依赖性的时候可以使用

不支持的浏览器

  • 遇到不支持的情况:让js包含在一个html注视中
  • noscipt 元素 嵌入当浏览器不支持js的时候的文档内容。

嵌入代码与外部文件对比

  • 可维护性高:易于你集中注意力在业务代码上。
  • 可缓存:如果是放在同一个地方,不同页面加载的时候,也会直接去加载已经下载好的文件,而不需要重新去下载。极大的提升了性能。怎么避免packjson包的的重复下载。
  • 适用于未来:通过外部引用的文件无需在使用前面注释hack

文档模式

文档的模式不一样会导致js的不兼容。

  • 混杂模式
  • 标准模式
  • 留在周末添加

小结:

使用js的几种方式:

  • 嵌入式
  • 外部引用

需要注意的几点:

  • src 读取相应文件的url,但是它可以是同意服务器的文件,也可以是外部服务器的文件。
  • 一般js会放到内容的后面,浏览器会先解析未使用defer延迟属性的js。
  • defer延迟可以做到文档加载完以后在执行脚本
  • async 表示脚本非阻塞的,不必等待其它脚本。
  • noscript 用于不支持js的浏览器。

不对的地方还望指出,喜欢的点赞谢谢