乐趣区

每日两道前端面试题 – 20190131

IE 和 DOM 事件模型之间存在哪些主要差别
1 – 冒泡型事件事件按照从最特定的事件目标到最不特定的事件目标(document 对象)的顺序触发 IE 5.5 div -> body -> documentIE 6.0 div -> body -> documentMozila 1.0 div -> body -> html -> document -> window
2. 捕获型事件:事件从最不精确的对象(document 对象)开始触发,然后到最精确.
3.DOM 事件流:同时支持两种事件模型:捕获型事件和冒泡型事件,但是,捕获型事件先发生,两种事件流会触及 DOM 中的所有对象,从 document 对象开始,也在 document 对象结束。DOM 事件模型最独特的性质是:文本节点也触发事件.IE 不会
支持 W3C 标准的浏览器在添加事件时用 addEventListener(event,fn,useCapture)方法第 3 个参数 useCapture 是一个 Boolean 值,用来设置事件是在事件捕获时执行,还是事件冒泡时执行。而不兼容 W3C 的浏览器 (IE) 用 attachEvent()方法,此方法没有相关设置,不过 IE 的事件模型默认是在事件冒泡时执行的,也就是在 useCapture 等于 false 的时候执行,所以把在处理事件时把 useCapture 设置为 false 是比较安全,也实现兼容浏览器的效果。

XMLHttpRequest
作用:XMLHttpRequest 对象用于在后台与服务器交换数据
简介:XMLHttpRequest 是开发者的梦想,因为可以在不重新加载页厕所情况下更新网页在页面已加载后从服务器请求数据在页面已加载后从服务器接收数据在后台向服务器发送数据
创建 XMLHttpRequest 对象的语法:xmlhttp = new XMLHttpRequest(); 若是 IE5 或 IE6, 则使用 xmlhttp = new ActiveXObject(“Microsoft.XMLHTTP”)
实例:
<html>
<head>
<script type=”text/javascript”>
var xmlhttp;
function loadXMLDoc(url)
{
xmlhttp=null;
if (window.XMLHttpRequest)
{// code for IE7, Firefox, Opera, etc.
xmlhttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{// code for IE6, IE5
xmlhttp=new ActiveXObject(“Microsoft.XMLHTTP”);
}
if (xmlhttp!=null)
{
xmlhttp.onreadystatechange=state_Change;
xmlhttp.open(“GET”,url,true);
xmlhttp.send(null);
}
else
{
alert(“Your browser does not support XMLHTTP.”);
}
}

function state_Change()
{
if (xmlhttp.readyState==4)
{// 4 = “loaded”
if (xmlhttp.status==200)
{// 200 = “OK”
document.getElementById(‘A1’).innerHTML=xmlhttp.status;
document.getElementById(‘A2’).innerHTML=xmlhttp.statusText;
document.getElementById(‘A3’).innerHTML=xmlhttp.responseText;
}
else
{
alert(“Problem retrieving XML data:” + xmlhttp.statusText);
}
}
}
</script>
</head>

<body>
<h2>Using the HttpRequest Object</h2>

<p><b>Status:</b>
<span id=”A1″></span>
</p>

<p><b>Status text:</b>
<span id=”A2″></span>
</p>

<p><b>Response:</b>
<br /><span id=”A3″></span>
</p>

<button onclick=”loadXMLDoc(‘/example/xdom/note.xml’)”>Get XML</button>

</body>
</html>

退出移动版