|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
一个很大的类库。应用程序之所以难以跨平台,在于直接调用了特定平台的接口,而一个巨大的类库,就能极大地减少应用程序对平台的依赖。asp.net|xml|创立|技能|控件比来在用ajax开辟服务器程序,发明IE扫瞄器不撑持xmlhttprequest工具,并且找不到Microsoft.XMLHTTP控件。
成绩呈现了我们必要办理,办理计划以下:
1、运转下regsvr32msxml3.dll;
2、用现成的框架来做ajax;
3、代码优化:
if(window.ActiveXObject)
{
xmlHttp=newActiveXObject("Microsoft.XMLHTTP");
}
elseif(window.XMLHttpRequest)
{
xmlHttp=newXMLHttpRequest();
}
if(handle_s==null)
handle_s="bin/normal.py/db";
this.xmlHttp.onreadystatechange=handle_l;
this.xmlHttp.open("GET",handle_s,true);
this.xmlHttp.send(null);
或判别扫瞄器
varagt=navigator.userAgent.toLowerCase();
varis_ie=(agt.indexOf("msie")!=-1);
varis_ie5=(agt.indexOf("msie5")!=-1);
varis_opera=(agt.indexOf("opera")!=-1);
varis_mac=(agt.indexOf("mac")!=-1);
varis_gecko=(agt.indexOf("gecko")!=-1);
varis_safari=(agt.indexOf("safari")!=-1);
functionCreateXmlHttpReq(handler){
varxmlhttp=null;
if(is_ie){
//Guaranteedtobeie5orie6
varcontrol=(is_ie5)?"Microsoft.XMLHTTP":"Msxml2.XMLHTTP";
try{
xmlhttp=newActiveXObject(control);
xmlhttp.onreadystatechange=handler;
}catch(ex){
//TODO:betterhelpmessage
alert("YouneedtoenableactivescriptingandactiveXcontrols");
}
}else{
//Mozilla
xmlhttp=newXMLHttpRequest();
xmlhttp.onload=handler;
xmlhttp.onerror=handler;
}
returnxmlhttp;
}
大概
<scriptlanguage="javascript">
varhttp_request=false;
functionsend_request(url){//初始化、指定处置函数、发送哀求的函数
http_request=false;
//入手下手初始化XMLHttpRequest工具
if(window.XMLHttpRequest){//Mozilla扫瞄器
http_request=newXMLHttpRequest();
if(http_request.overrideMimeType){//设置MiME种别
http_request.overrideMimeType(text/xml);
}
}
elseif(window.ActiveXObject){//IE扫瞄器
try{
http_request=newActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
http_request=newActiveXObject("Microsoft.XMLHTTP");
}catch(e){}
}
}
if(!http_request){//非常,创立工具实例失利
window.alert("不克不及创立XMLHttpRequest工具实例.");
returnfalse;
}
http_request.onreadystatechange=processRequest;
//断定发送哀求的体例和URL和是不是同步实行下段代码
http_request.open("GET",url,true);
http_request.send(null);
}
//处置前往信息的函数
functionprocessRequest(){
if(http_request.readyState==4){//判别工具形态
if(http_request.status==200){//信息已乐成前往,入手下手处置信息
varreturnObj=http_request.responseXML;
varxmlobj=http_request.responseXML;
varemployees=xmlobj.getElementsByTagName("employee");
varfeedbackStr="";
for(vari=0;i<employees.length;i++){//轮回读取employees.xml的内容
varemployee=employees[i];
feedbackStr+="员工:"+employee.getAttribute("name");//获得标签指定属性
feedbackStr+="职位:"+employee.getElementsByTagName("job")[0].firstChild.data;//获得指定标签的最后数据
feedbackStr+="人为:"+employee.getElementsByTagName("salary")[0].firstChild.data;
feedbackStr+="
";
}
alert(feedbackStr);
}else{//页面不一般
alert("您所哀求的页面有非常。");
}
}
}
</script>
中间码是基于一个虚拟机器。源代码是最高层的,理论上从源代码开始直接编译成本地码能提供最大优化的。而中间码只能是转译成本地码,效率上难免受到损耗。根据虚拟机器所设定的体系结构的特点,和本地机器的差异的多少。 |
|