Q2绩效《JavaScript权威指南》
第13章:web浏览器中的JavaScript
1、在URL中使用JavaScript,特定协议类型 + 任意字符串 会被JavaScript解释器运行
<a href="javascript:new Date().toLocaleTimeString()">
what time is it?
</a>
<!--点击标签后替换文档内容(body内容)输出时间-->
第14章:window对象
1、当执行的JavaScript代码没有返回值的时候,浏览器并不会替换文档的内容
<a href="javascript:alert(new Date().toLocaleTimeString())">
what time is it?
</a>
<!--点击标签后不替换文档内容输出时间-->
2、如果要确保JavaScript:url不会覆盖当前的文档,可以用void操作符强制函数调用或给表达式赋予undefined
<a href="javascript:void window.open('about:blank')">
打开一个新窗口
</a>
<!--点击标签后不替换文档内容(body内容)打开新标签-->
3、HTML5定义了一种并发的控制方式,叫‘web worker’,它是用来执行计算密集任务而不冻结用户界面的后台线程。
4、单线程执行时为了让编程更简单,永远不需要在写JavaScript的时候担心锁,死锁和竞态条件。
5、web浏览器是web应用的操作系统,但是web是一个存在差异性的环境。
6、YUI 的浏览器分级支持策略:允许每个用户都可以享受到他们的设备所能提供的最好的视觉和互动体验。这种方法——通常被称为“渐进增强”——是在“可访问”这个前提之上建立丰富的体验,但不会为了体验而牺牲这个前提。渐进增强 和 优雅降级 的概念通常用来描述浏览器支持策略。它们确实是“容错”工程中联系紧密的两种方式。渐进增强的方式更健康,而且更具前瞻性。因此,渐进增强是浏览器分级支持策略的核心概念。
7、浏览器支持策略需要有一个完整的定义,一共有三个级别:A 级支持、C 级支持和 X 级支持。
C 级是最基本的支持程度,只提供核心内容和功能。它有时也被称作“基础支持”。内容和体验的载体无非就是语义化的 HTML,虽然没有视觉装饰或高级功能作为增强,但它是高度可访问的,且具备向前和向后的兼容性。样式层和行为层将被忽略。
A 级表示最高的支持程度。充分利用现代 Web 标准的强大能力,A 级体验会提供先进的产品功能和完整的视觉效果
8、JavaScript的功能限制:JavaScript浏览器可以打开一个新窗口,但是为了恶意广告弹窗,很多浏览器限制了这一功能;JavaScript可以关闭自己打开的浏览器窗口,但是不允许未经用户确认关闭其他的窗口;HTML中fileUpload元素是只读的;脚本不能读取从不同的服务器载入的文档内容,除非这个就是包含该脚本的文档。
9、在多窗体的网页中,即使一个窗口关闭了,代表它的window对象依然存在。但documen为nulll。
10、当一个窗口是顶级窗口或标签,而不是窗体,那么其parent属性引用的就是这个窗体本身:
parent == self // 只有顶级窗口才会返回true
11、<iframe>元素有contentWindow属性,引用该窗体的window对象,因此次窗体的window对象就是:
var childFrame = document.getElementById('xx').contentWindow
但通常不使用这种方式获取窗口中子窗体的引用。每个window对象都有一个frames属性,它引用自身包含的窗口或窗体的子窗体。frames属性是类数组对象,要引用窗口的第一个子窗体,可以用frame[0]
第15章:脚本化文档
1、与通过ID、名字、标签名和类名不同,querySelectorAll()返回的NodeList对象并不是实时的。它包含在调用时可选择器所匹配的元素,但它并不更新后续文档的变化。