JavaScript高级程序设计-----望远镜学习笔记(1)

第二章:HTML中的JavaScript

2.1

<script>元素有8个属性。

在<script/>中不能出现<script/>字符串,非要用的话使用转义字符“\”。

包含外部文件中的JavaScript,必须使用src属性

//错误示范
<script src="exp.js"/>

这是一个无效的HTML。

使用了src属性的<script>不应该在<script></script>标签中再包含其他js代码。如果俩者都提供的话,浏览器只会下载并执行脚本文件,从而忽略行内代码。

标签位置:<script>放在了后面,用户体验的事:用户感觉页面加载更快了,因为浏览器显示空白页面的时间变短了。

defer和async --没啥用的感觉。

动态加载脚本

let script = document.createElenment('script');
script.src = 'gibberish.js';
script.async = false;
document.head.appendChild(script);

以这种方式获取的资源对浏览器预加载器是不可见的。严重影响它们在资源获取队列中的优先级。影响性能。如果想让预加载器知道这些动态请求文件的存在,可以在文档头部显示声明它们

<link rel="preload" href="gibberish.js">

XHTML可能作为历史遗留代码,在XHTML中使用使用js必须指定type属性为text/javascript。XHTML中的“<”会被解释成标签的开始,(作为标签开始的小于号后面不能有空格),会导致语法错误。解决方案1:把小于号换成&lt;2:把代码包含到一个CDATA中。如果浏览器不兼容CDATA,那么CDATA标记必须使用JS的注释来抵消。

废弃语法:滚犊子。

2.2 行内代码与外部文件

推荐使用外部文件的原因:

  1. 可维护性
  2. 缓存
  3. 适应未来

这一小节主要是考虑浏览器的兼容性问题,自我学习JS以来,现代的浏览器似乎不用考虑这些了。

第二章末的总结

  • 要包含外部js文件,必须将src属性设置为要包含文件的URL。文件可以跟网页在同一台服务器上,也可以位于完全不同的域。
  • 所有<script>元素会依照它们在网页中出现的次序被解释。不使用defer和async属性的情况下,包含在<script>元素中的代码必须严格按次序解释
  • 对于不推迟执行的脚本,浏览器必须解释完位于<script>元素中的代码,然后才能继续渲染页面的剩余部分。因此,通常把<script>元素放到页面末尾,介于主内容之后及<body>标签之前。
  • <noscript>,可以指定在浏览器不支持脚本时显示的内容。如果浏览器支持脚本,那么<noscript>中的任何内容都不会被渲染。

<------------P20-------------->结束了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值