美文网首页
JavaScript Dom编程艺术—阅读摘要

JavaScript Dom编程艺术—阅读摘要

作者: 斯蒂芬加油啊 | 来源:发表于2019-04-03 16:51 被阅读0次

    1.Dom-文档对象模型利用Dom可以给文档增加交互能力,Javascript是可以使网页具备交互能力的设计语言。

    2.一份文档就是一棵节点树;节点分为不同的类型:元素节点、属性节点和文本节点等;getElementById将返回一个对象,该对象对应着文档里的一个特定的元素节点;getElementByTagName和getElementByClassName将返回一个对象数组,它们分别对应着文档里一组特定的元素节点;每个节点都是一个对象。

    3.DOM是一种适用于多种环境和多种程序设计语言的通用型API。

    4.如果想让函数在网页加载完毕之后立刻执行,网页加载完毕时会触发一个onload事件,这个事件与window对象相关联,可以把想要执行的函数绑定到这个事件上:window.onload = function();但是如果有两个或多个函数需要在网页加载完毕时执行,如果把它们逐一绑定到onload事件上,它们当中只有最后那个才会被实际执行。
    每个事件处理函数只能绑定一条指令,有一个办法可以解决这种情况:可以先创建一个匿名函数来容纳这两个函数,然后把那个匿名函数绑定到onload事件上:

    window.onload = function(){
        firstFunction();
        secondFunction();
    }    
    

    在需要绑定的函数不是很多的场合,这应该是最简单的解决方案了。
    这里还有一个弹性最佳的解决方案,不管在页面加载完毕时需要执行多少个函数。这个函数的名字是addLoadEvent,它只有一个参数:打算在页面加载完毕时执行的函数的名字。下面是addLoadEvent函数将要完成的操作。
    ①把现有的window.onload事件处理函数的值存入变量oldonload。
    ②如果在这个处理函数上还没有绑定任何函数,就像平时那样把新函数添加给它。
    ③如果在这个处理函数上已经绑定了一些函数,就把新函数追加到现有指令的末尾。

    function addLoadEvent(func){    
        var oldonload = window.onload;  
    if (typeof window.onload != 'function'){  
            window.onload = func;  
    }else{  
            window.onload = function(){  
                oldonload();  
                func();  
            }  
        }  
    }  
    

    这将把那些在页面加载完毕时执行的函数创建为一个队列。把刚才那两个函数添加到这个队列中去:

    addLoadEvent(firstFunction);
    addLoadEvent(secondFunction);
    

    5.Ajax的主要优势就是对页面的请求以异步方式发送到服务器。而服务器不会用整个页面来相应请求,它会在后台处理请求,与此同时用户还能继续浏览页面并与页面交互。你的脚本则可以按需加载和创建页面内容,而不会打断用户的浏览体验。
    Ajax技术的核心就是XMLHttpRequest对象。这个对象充当着浏览器中的脚本(客户端)与服务器之间的中间人的角色。以往的请求都由浏览器发出,而JavaScript通过这个对象可以自己发送请求,同时也自己处理响应。

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

    7.如果你觉察到自己正在使用DOM技术把一些重要的内容添加到网页上,则应该立刻停下来去检讨你的计划和思路。你很可能会发现自己正在滥用DOM!下面这两项原则要牢记在心。
    一、渐进增强(progressive enhancement)。渐进增强原则基于这样一种思想:你应该总是从最核心的部分,也就是从内容开始。应该根据内容使用标记实现良好的结构;然后再逐步加强这些内容。这些增强工作既可以是通过CSS改进呈现效果,也可以是通过DOM添加各种行为。如果你正在使用DOM添加核心内容,那么你添加的时机未免太迟了,内容应该在刚开始编写文档时就成为文档的组成部分。
    二、平稳退化。渐进增强的实现必然支持平稳退化。如果你按照渐进增强的原则去充实内容,你为内容添加的样式和行为就自然支持平稳退化,那些缺乏必要的CSS和DOM支持的访问者仍可以访问到你的核心内容。如果你用JavaScript去添加这些重要内容,它就没法支持平稳退化,不支持JavaScript,就看不到内容。这好像是一种限制,其实不是,利用DOM去生成内容有着广泛的用途。

    相关文章

      网友评论

          本文标题:JavaScript Dom编程艺术—阅读摘要

          本文链接:https://www.haomeiwen.com/subject/ibbzbqtx.html