要解决兼容问题首先注意以下几点:
1,document.getElementById替代document.all(ie适用)2,集合[]替代()(ie适用)3,target替代srcElement;parentNode替代parentElement(parentNode ie适用)4,node.parentNode.removeChild(node)替代removeNode(this)(ie适用)5,DOMMouseScroll替代onmousewheel;-e.detail替代event.wheelDelta6,addEventListener替代attachEvent;removeEventListener替代detachEvent7e.preventDefault()替代event.returnValue=false;e.stopPropagation()替代event.cancelBubble=true8,style.top、style.left等严格检查"px"单位(加"px" ie适用)9,style="-moz-opacity:0.9"替代style="filter:alpha(opacity=90)";无其它filter10,style.cursor="pointer"替代style.cursor="hand"(ie适用)11,title替代alt(ie适用)12.所有的空间在引用时都要这样引用:document.getElementById(“XX”)。
注:标明“ie适用”者为通用性建议写法,未标明者在ie里不适用。
在AJAX中,如果网络或远程服务器出现中断,会发生什么呢?实际上,存在两个主要问题;默认地,它们并没有在XMLHttpRequest对象中得到解决。这两个主要问题是:1.处理延迟:如果网络或远程服务器耗费较多时间,那么这个问题如何与你的AJAX应用程序相联系呢?
2.响应顺序:潜在地,网络(或服务器)会不断变化。这意味着,响应可能不会以与请求相同的顺序返回。为了处理上面这两个问题,程序员必须编写代码来解决这个问题。对于第一个问题,一种可能的方案如下所示: function callInProgress(xmlhttp) { switch ( xmlhttp.readyState ) { case 1,2,3: return true; break; //Case 4和0 default: return false; break; }}
现在,在调用send()前,我可以先检查一下是否该对象正处于忙态: if ( !callInProgress(xmlhttp) ) { xmlhttp.send(null);} else { alert("I'm busy. Wait a moment");}
转载于:https://www.cnblogs.com/LiWenYi/p/11204970.html