首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

jquery源码学习技艺点之浏览器特性

2013-11-30 
jquery源码学习技能点之浏览器特性浏览器产品中最核心的技术之一莫过于排版引擎(或称为渲染引擎)。不同的浏

jquery源码学习技能点之浏览器特性

浏览器产品中最核心的技术之一莫过于排版引擎(或称为渲染引擎)。
不同的浏览器产品开发商在开发其产品时会采用不同的排版引擎。
早期的一些开发商开发出自己的排版引擎后,允许其他浏览器厂商在许可的
范围内直接使用排版引擎来开发出自己的产品。所以
目前市场上数百种浏览器按照排版引擎来分的话也就几种而已。
目浏览器根据其使用内核大概分为四种:(只讨论pc端的浏览器)
1)采用MS内核(Trident)的。常见如IE,遨游
2)采用webkit内核的。常见如safari,chrome
3)采用Gecko 内核的。常见如firefox
4)采用presto 内核的。只有一款opera
----------分割线------------------
对于前端开发来说,处理以上这四种浏览器还是会带来很烦人的问题。
问题之一就是处理浏览器跟w3c标准不统一的特性。为什么会有浏览器特性?
个中缘由不解释


本节内容主要收集一些DOM文档ready有关的一些知识。
onload事件:该事件的触发是在网页资源(页面上所有的DOM,样式表,脚本,
                    图片,flash等)全部加载完毕后。
DOMContentLoaded事件:它能在onload事件之前触发。它的触发条件一般情况
                                        下是只要网页DOM准备好后。

dom的Ready跟我们平时那些开发有关呢?
比如常见的:
1.给一些元素绑定处理事件,但是如果代码写的不恰当,会造成文档元素还没加载
   完毕,事件却已经执行完了,这样肯定是没有效果的。
2.还比如页面上的图片,flash虽然还没加载出来,但是其他的内容我们已经看到了
   我们却不能做交互。常见的比如登录邮箱页面,邮箱地址和密码输入框已经
   看到了,但是由于网页慢,该页面上的广告和动画还没加载出来,我们希望这时
   可以进行信息的输入,我们才不管那些动画啥的好了没。

一般javaScript框架在处理不同浏览器的dom ready时涉及到以下知识点:
   非IE内核中:
      比如轮询document的readyState属性,
      还有是否支持DOMContentLoaded事件。
   IE内核中:
      在IE内核中,doScroll函数必须在DOM加载完成后才能执行。
      还有侦测doucument的onreadystatechange是否是complete。

当然上面的划分非IE内核啥的不太确切。现在IE内核也在进化。浏览器厂商越来越靠近
标准了。所以实际上框架中处理时,是不侦测浏览器类型的,只看你是否支持这个函数
或类似函数。


更具体的解释可以看下网上这几篇博客:
http://qingbob.com/blog/从onload和DOMContentLoaded谈起
http://www.cnblogs.com/rubylouvre/archive/2009/12/30/1635645.html
http://www.cnblogs.com/zhangziqiu/archive/2011/06/27/domready.html





热点排行