• 【读书笔记】读《JavaScript DOM 编程艺术第2版》


    1、DHTML

      DHTML曾被认为是HTML/XHTML、CSS和JavaScript相结合的产物,就像今天的HTML5那样,但把这些东西真正凝聚在一起的是DOM。如果真的需要来描述这一过程的话,“DOM脚本程序设计”更精确,它表示使用W3C DOM来处理文档和样式表。

    2、关联数组

      数组的下标不局限于数字,可以使用字符串来标识语义的数组。

    3、宿主对象

      除了内建对象,还可以在JavaScript脚本里使用一些已经预先定义好的其他对象。这些对象不是有JavaScript语言本身而是由它的运行环境提供的。具体到WEB应用,这个环境就是浏览器。有浏览器提供的预定义对象被称为宿主对象。

    4、DOM定义

      D:当创建了一个网页并把它加载到Web浏览器中时,DOM就在幕后悄然而生。它把你编写的网页文档转换为一个文档对象。

      O:是一种自足的数据集合。与某个特定对象相关联的变量被称为这个对象的属性;只能通过某个特定对象去调用的函数被称为这个对象的方法。JavaScript里的对象分为三种类型——

        1>     用户自定义对象

        2>     内建对象:内建在JavaScript语言里的对象,如String、Math、Date、Array、Event等

        3>     宿主对象:由浏览器提供的对象,如window、document等

      M:代表一种模型,DOM把一份文档表示为一棵树,更具体的说,DOM把文档表示为一棵家谱树。

    5、节点(核心):元素节点、属性节点、文本节点

    6、获取元素:

      getElementById

      getElementsByTagName

      getElementsByClassName(HTML5 DOM)

    7、获取和设置属性

      getAttribute

      setAttribute

    8、flash和JavaScript的遭遇

      会出现滥用、复制粘贴现成代码的现象,然后这种现象会导致浏览器下载网页的速度变慢,当人们使用这些脚本称为一种潮流的时候,那么这种习惯就很难改正了。自然而然容易得到很坏的名声。

    10、“javascirpt:”伪协议

    让我们通过一个链接来调用JavaScript。

    11、不管什么时候,只要是查找DOM中的某些元素,浏览器都会搜索整个DOM树,从中查找可能匹配的元素。

    12、一般来说,根据HTTP规范,浏览器每次从同一个域名中最多同时下载两个文件。而在下载脚本期间,浏览器不会下载其他任何文件,即使是来自不同域名文件也不会下载,所有其他资源都要等脚本加载完毕后才能下载。

    13、Ajax技术的核心就是XMLHttpRequest对象。这个对象充当着浏览器中的脚本(客户端)与服务器之间的中间人的角色。以往的请求都由浏览器发出,而JavaScript通过这个对象可以自己发出请求,同时也自己处理响应。

    14、在使用Ajax时,千万要注意同源策略。使用XMLHttpRequest对象发送的请求只能访问与其所在的HTML处于同一域中的数据,不能向其他域发送请求。此外,有些浏览器还限制Ajax请求使用的协议。比如在Chrome中,如果你使用file://协议从自己的硬盘里加载example.txt文件,就会看到“Cross origin requests are only supported for HTTP”(跨域请求只支持HTTP协议)的错误消息。

    15、JavaScript不应该做什么

      渐进增强原则基于这样一种思想:你应该总是从最核心的部分,也就是从内容开始。应该根据内容是用标记实现良好的结构;然后再逐步加强这些内容。这些增强工作既可以是通过CSS改进呈现效果,也可以使通过DOM添加各种行为。如果你正在是用DOM添加核心内容,那么你添加的时机未免太迟了,内容应该在刚开始编写文档时就成为文档的组成部分。

      平稳退化:如果你按照渐进曾庆的原则去充实内容,你为内容添加的样式和行为就自然支持平稳退化,那些缺乏必要的CSS和DOM支持的访问者仍可以访问到你的核心内容。如果你用JavaScript去添加这些重要内容,它就没法支持平稳退化,不支持JavaScript,就看不到内容。

    16、常用库

             Dojo

             jQuery

             MooTools

             Prototype

             YUI

    17、内容分发网络(CDN)

      为了让用户尽可能快地加载到页面。对于库来说,如果有很多站点要使用同一个库,那么最好是把这个库托管一个公共服务器上,以便所有站点共享和访问。这样,当用户从一个站点跳到另一个站点时,他们就不用再重复下载相同的文件了。

      内容发布网络可以解决分布共享库的问题。CDN就是一个由服务器构成的网络,这个网络的用途就是分散存储一些公共的内容。CDN中的每台服务器都包含库的一份副本,这些服务器分布在世界上不同的国家和地区,以便达到利用贷款和加快加载的目的。浏览器访问库的时候使用一个公共的URL,而CDN的底层则通过地理文职最近、速度最快的服务器提供相应的文件,从而解决了整个系统中的瓶颈问题。

    18、这本书的logo

      

  • 相关阅读:
    LeetCode 230. 二叉搜索树中第K小的元素(Kth Smallest Element in a BST)
    LeetCode 216. 组合总和 III(Combination Sum III)
    LeetCode 179. 最大数(Largest Number)
    LeetCode 199. 二叉树的右视图(Binary Tree Right Side View)
    LeetCode 114. 二叉树展开为链表(Flatten Binary Tree to Linked List)
    LeetCode 106. 从中序与后序遍历序列构造二叉树(Construct Binary Tree from Inorder and Postorder Traversal)
    指针变量、普通变量、内存和地址的全面对比
    MiZ702学习笔记8——让MiZ702变身PC的方法
    你可能不知道的,定义,声明,初始化
    原创zynq文章整理(MiZ702教程+例程)
  • 原文地址:https://www.cnblogs.com/jinguangguo/p/3477639.html
Copyright © 2020-2023  润新知