再读红宝书(第四版)第二章 html 中的 javascript

将 JavaScript 引入网页,首先要解决它与网页的主导语言 HTML的关系问题。网景公司努力达成了许多向网页中引入通用脚本能力的共识。当初他们的很多工作得到了保留,并且最终形成了 HTML 规范。

。否则会导致浏览器报错。(想避免这个问题,只需要转义字符<\/script>)

转义字符指在 JavaScript 中使用反斜杠“\”来向文本字符串添加特殊字符。

  • 通过它在网页中包含外部 JavaScript 文件。包含外部文件中的 JavaScript,就必须使用 src 属性。这个属性的值是一个 URL,指向包含JavaScript 代码的文件。与解释行内 JavaScript 一样,在解释外部 JavaScript 文件时,页面也会阻塞。(阻塞时间也包含下载文件的时间。)在 XHTML 文档中,可以忽略结束标签(单标签形式)以上语法不能在 HTML 文件中使用,因为它是无效的 HTML,有些浏览器不能正常处理,比如 IE。

  • 注意: 按照惯例,外部 JavaScript 文件的扩展名是.js。这不是必需的,因为浏览器不会检查所包含 JavaScript 文件的扩展名。这就为使用服务器端脚本语言动态生成 JavaScript 代码,或者在浏览器中将 JavaScript扩展语言(如TypeScript,或React的 JSX)转译为JavaScript提供了可能性。不过要注意,服务器经常会根据文件扩展来确定响应的正确 MIME 类型。

    如果不打算使用 .js 扩展名,一定要确保服务器能返回正确的 MIME 类型。

    MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

    *使用了 src 属性的标签中再包含其他 JavaScript 代码。如果两者都提供的话,则浏览器只会下载并执行脚本文件,从而忽略行内代码。

    并且浏览器在解析这个资源时,会向 src 属性指定的路径发送一个 GET 请求,以取得相应资源,假定是一个 JavaScript 文件。这个初始的请求不受浏览器同源策略限制,但返回并被执行的 JavaScript 则受限制。当然,这个请求仍然受父页面 HTTP/HTTPS 协议的限制。

    来自外部域的代码会被当成加载它的页面的一部分来加载和解释。这个能力可以让我们通过不同的域分发 JavaScript。不过,引用了放在别人服务器上的 JavaScript 文件时要格外小心,因为恶意的程序员随时可能替换这个文件。在包含外部域的 JavaScript 文件时,要确保该域是自己所有的,或者该域是一个可信的来源。

    你可能感兴趣的:(大前端,html,javascript,noscript)