读《JavaScript dom编程艺术(第2版)》笔记 5-6

今天看了第五章,讲了许多我一直没有考虑过的内容:平稳退化、分离JavaScript、向后兼容性、性能考虑。引出这些问题的原因是:有的浏览器并不能支持js脚本,或者有的浏览器虽然可以支持js脚本,但是用户关闭了js解释功能,或者有的浏览器只能支持部分js脚本。如果没有考虑到这些情况,人们在访问我们的网站时就有可能遇到各种各样的麻烦,并因此不再来访问我们的网站。

平稳退化:确保网页在没有JavaScript的情况下也能正常工作

如果正确使用了JavaScript脚本,就可以让访问者在他们的浏览器不支持JavaScript的情况下仍能顺利地浏览我们的网站,这就是所谓的平稳退化,就是说,虽然某些功能无法使用,但是最基本的操作仍能顺利完成。

渐进增强:用一些额外的信息层去包裹原始数据。按照“渐进增强”原则创建出来的网页几乎都符合“平稳退化”原则

分离JavaScript:把网页的结构和内容与JavaScript脚本的动作行为分开

 

window.onload = function() {
  if (!document.getElementsByTagName) return false;
  var lnks = document.getElementsByTagName("a");
  for (var i=0; i<lnks.length; i++) {
    if (lnks[i].getAttribute("class") == "popup") {
      lnks[i].onclick = function() {
        popUp(this.getAttribute("href"));
        return false;
      }
    }
  }
}

function popUp(winURL) {
  window.open(winURL,"popup","width=320,height=480");
}

 

 

向后兼容性:确保老版本的浏览器不会因为你的JavaScript脚本而死掉

对象检测:只要把某个方法打包在一个if语句里,就可以根据这条if语句的条件表达式的求值结果是true(这个方法存在)还是false(这个方法不存在)来决定应该采取怎样的行动。

在使用对象检测时,一定要删除方法名后的圆括号,如果不删掉,测试的将是方法的结果,无论方法是否存在。

function myFunction(){
  if(document.getElementById){
    statements using getElementById
  }
}

虽然只是一条简单的if语句,但是却可以确保那些“古老的”浏览器不会因为我的脚本代码而出问题,这么做是为了让脚本有良好的向后兼容性。

浏览器嗅探技术:指通过提取浏览器供应商提供的信息来解决向后兼容问题。

性能考虑:确定脚本执行的性能最优

1、尽量少访问DOM和尽量减少标记

2、合并和放置脚本

减少请求数量通常都是在性能优化是时首先要考虑的。

脚本在标记中的位置对页面的初次加载时间也有很大影响,根据HTTP规范,浏览器每次从同一个域名中最多只能同时下载两个文件。而在下载脚本期间,浏览器不会下载其他任何文件,即使是来自不同域名的文件也不会下载,所有其他资源都要等脚本加载完毕后才能下载

3、压缩脚本

请看这篇文章

 

 nodeName属性总是返回一个大写字母的值,即使元素在HTML文档里是小写字母

最好不要用onkeypress事件处理函数,onclick事件处理函数已经能满足需要。虽然它的名字为“onclick”,但它对键盘访问的支持相当完美

 DOM由3部分组成:

  1.Core DOM:核心DOM,定义了一套标准的针对任何结构化文档的对象,包括HTML、XHTML、XML

  2.XML DOM:定义了一套标准的针对XML文档的对象

  3.HTML DOM:定义了一套标准的针对HTML文档的对象

 

不得不说,从前我写网页文件,从来没有考虑过这些提高性能的问题,看了书之后受益匪浅啊!以后我会注意这方面的问题的,使自己的网站更完善,更完美!

posted @ 2015-04-19 18:04  木槿の瑶  阅读(232)  评论(0编辑  收藏  举报