犀牛书第五版读书笔记——Chapter 13. JavaScript in Web Browsers(第二部分)

时间:2022-07-11 00:14:21
12.当有多个onload事件处理函数注册,浏览器会调用所有的处理函数,但是调用的顺序则无从保证

13.文档解析已经完成之后绝对不能调用document.write()方法。这样做的话,将创建一个新的document,并覆盖掉现有的document,用户甚至没有机会看到现有的document

14.javascript是单线程的。因此两个事件处理函数绝对不会同时执行

15.单线程也带来一些问题:它意味着javascript代码不能执行太长时间。如果javascript代码执行太久,会延迟document的载入,用户直到代码执行完成之间,都看不到页面。如果事件处理函数执行太久,则执行期间浏览器会停止响应,用户可能会认为网页已经崩溃了

16.一般来说,不推荐在文档解析过程中,对文档内容进行操作。经验丰富的javascript程序员通常采用的做法,是在文档解析完成后,再对文档进行操作。否则可能会出现一些奇怪的问题

17.javascript程序一个不能回避的问题,就是跨浏览器兼容性

18.网页过多地依赖javascript代码,可能会带来可访问性的问题。比如有的用户使用的是移动设备,和声音阅读器之类的,要注意这种情况。当然,在国内这种情况似乎不多

19.为了安全性的考虑,客户端javascript有意屏蔽了很多功能,比如删除文件,创建网络socket等,因为这些功能可以被恶意javascript代码用来做一些危险的事,损害用户的安全

20.javascript一般遵循“同源策略”,来保证安全性,不同的浏览器对同源策略的实现也不一样