Ajax的工具类

本文深入探讨了AI音视频处理领域中的视频分割与语义识别技术,介绍了其在自动驾驶、AR等领域的重要应用。通过详细解析算法原理与实际案例,为读者提供了一个全面的理解框架。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

var Ajax={
		 xhr: null,
		 ok : true,
		 xhrPool: [],
         createXHRObj : function(){
        	 var xhrObj;
        	 try {
        		  if(window.XMLHttpRequest){
        	    	 xhrObj = new XMLHttpRequest();
        	      }else if(window.ActiveXObject){
        	    	  var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP','MSXML2.XMLHTTP.6.0'];
        	    	  for(var i=0;i<MSXML.length;i++){
        	    		  try{
        	    			  xhrObj = new ActiveXObject(MSXML[i]); 
        	    			  break;
        	    		  }catch(e){
        	    			  
        	    		  }
        	    	  }
        	      }
        		  if (xhrObj.readyState == null)
        	        {
        			  xhrObj.readyState = 0;

        			  xhrObj.addEventListener("load", function (){
        				  xhrObj.readyState = 4;

        	                    if (typeof xhrObj.onreadystatechange == "function")
        	                    {
        	                    	xhrObj.onreadystatechange();
        	                    }
        	             },  false);
        	       }
        		  return xhrObj;
        	     } catch (e) {
        		   alert("XMLHttpRequest创建错误!");
        	    }
         },
         getXhrInstance:function(){
 			for(var i=0;i<this.xhrPool.length;i++){
 				if (this.xhrPool[i].readyState == 0 || this.xhrPool[i].readyState == 4)
 	            {
 	                return this.xhrPool[i];
 	            }
 			} 
 			this.xhrPool[this.xhrPool.length] = this.createXHRObj();
			return this.xhrPool[this.xhrPool.length-1];
 		 },
         init:function(){
			this.xhrPool = new Array();
		 },
         setHeader:function(key, value){
        	 var xhrObj = this.xhr;
        	 try{
        		 xhrObj.setRequestHeader(key,value);
        	 }catch(e){
        		 alert("设置Header异常:"+e.message);
        	 }
         },
         
         //按类型解析数据
         _parse:function(text,dtype){
        	 var _data = null;
        	 if(dtype == 'JSON'){
        		 _data = text;
        		 return eval('('+ _data +')');
        	 }
        	 return text;
         },
         //cbobj必须包含callback函数
		 sendDataForJson:function(data, url,method, cbobj){
			 try{ 
				    var xhrObj = this.getXhrInstance();
					var msg="";
					for(i=0;i<data.length;i++){
						var obj = data[i];
						if(i == data.length-1){
						    var v = obj.value;
							msg += obj.key+"="+encodeURIComponent(encodeURIComponent(v));
						}else{
						    var v = obj.value;
							msg += obj.key+"="+encodeURIComponent(encodeURIComponent(v))+"&";
						}
					}

					if(method == "GET"){
						xhrObj.open(method,url+"?randnum=" + Math.random()+ "&" +msg,true);
						xhrObj.setRequestHeader("Content-Type", "text/html");
		        		xhrObj.setRequestHeader("Cache-Control", "no-cache");
		        		xhrObj.setRequestHeader("CustomDataType","JSON");
						xhrObj.send(null);
					}else if(method == "POST"){
						xhrObj.open(method,url+"?randnum="+Math.random(),true);
						xhrObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		        		xhrObj.setRequestHeader("Cache-Control", "no-cache");
		        		xhrObj.setRequestHeader("Content-Length",msg.length);
		        		xhrObj.setRequestHeader("Connection", "close");
		        		xhrObj.setRequestHeader("CustomDataType","JSON");
						xhrObj.send(msg);
					}
				    var returnText = "";
				    xhrObj.onreadystatechange = function(){
				    	 if(xhrObj.readyState == 4){
				    		 if(xhrObj.status == 200){
				    			 returnText = xhrObj.responseText;
					    		 returnText = decodeURIComponent(decodeURIComponent(returnText));
					    		 cbobj.callback(Ajax._parse(returnText,xhrObj.getResponseHeader("CustomDataType")) );
				    		 }
				    	 }
				    	 
			    		 //xhrObj.abort(); 
				    };
					return returnText;
				  }catch(e){
				    alert('连接服务器异常,错误原因:' + e.name + " 描述:" +e.message );
				    xhrObj.abort();
				  }	
		 }
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值