javascript ajax

javascript实现的ajax主要代码如下:

var xmlHttp = false; 

function ajaxScore(_ajaxCon){

//ajax处理评分

var callBackResult ;

var _assetid = $('resource_id').innerHTML;

if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari

xmlHttp = new XMLHttpRequest();

}

else {// code for IE6, IE5

xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

}

xmlHttp.setRequestHeader( "Connection", "close");

var url="http://172.30.93.204:8078/gateway/assetScoreServlet?assetid="+_assetid+"&stbId=''&score="+_ajaxCon;

//var url = "";//获取播放地址url

if (url) {

xmlHttp.onreadystatechange = function(){

if (xmlHttp.readyState == 4 ) {

if(xmlHttp.status == 200){

if(curTimeoutErrorInfo > 0)

clearTimeout(curTimeoutErrorInfo) ;

callBackResult = xmlHttp.responseText;//xmlHttp.responseText is callback value

//$("film").innerHTML = callBackResult ;

if(eval(callBackResult)[0].url == 'ok'){

$("resultError").innerHTML = "评分成功!";

$("error").style.visibility = "visible";

setTimeout(function(){$("error").style.visibility = "hidden";},2000);

}

}

}

else{//network not success

if(curTimeoutErrorInfo > 0)

clearTimeout(curTimeoutErrorInfo) ;

curTimeoutErrorInfo = setTimeout(function(){

$("resultError").innerHTML = "评分失败,请检查网络连接!";

$("error").style.visibility = "visible";

setTimeout(function(){$("error").style.visibility = "hidden";},2000);



},2000) ;

}

}

xmlHttp.open("POST", url, true);

xmlHttp.send();

}

else {

//$("play_num_" + line).innerHTML = "";//URL not exist

}

//alert(_ajaxCon); 

}

  下面也是一个简单的ajax写法:

var TSTimeSpan = 0;

var requests = new Array();

function ajax_create_request(context)

{

 var pos = requests.length;

        

        if (pos < 10)   //???

        {

            for (var i = 0; i < pos; i++)

            {

                if (requests[i].readyState == 4)

                {

                    requests[i].abort();

                    requests[i].context = context;

                    return requests[i];

                }

            }

        }

        else

        {

            for (var i = 0; i < pos; i++)

            {

                if (requests[i].readyState == 4)

                {

                    requests[i].abort();

                }

                requests[i].obj = null;

                requests[i]=null;

            }

            requests = new Array();

            pos = 0;

        }

  

        requests[pos] = Object();

        requests[pos].obj = XMLHttpRequest();

 requests[pos].context = context;

        return requests[pos];

}

function ajax_request(userid, action, clientID, lastState, url, data, callback, httpresponse, context, objname)

{

 var request = ajax_create_request(context);

 request.obj.onreadystatechange = function()

 {

  if (request.obj)

  {

      if(request.obj.readyState == 4)

      {

       httpresponse(new ajax_response(request));

       if (callback)

       {

           callback(new ajax_response(request));

       }

   }

  }

 }

 

 request.obj.open('GET', url, true);

 request.obj.setRequestHeader( "Accept", "text/xml");

 request.obj.setRequestHeader("Content-Type", "text/xml");

        request.obj.setRequestHeader("charset", "utf-8");

 request.obj.setRequestHeader( "User-id", userid);//设置header

 request.obj.setRequestHeader( "User-action", action);

 request.obj.setRequestHeader( "TS-ClientID", clientID);

    request.obj.setRequestHeader( "X-Last-State", lastState);

    request.obj.setRequestHeader( "User-Json", data);

    request.obj.setRequestHeader( "Obj-Name", objname);

    request.obj.setRequestHeader( "S-Time", "");

    request.obj.setRequestHeader( "TS-SpanTime", TSTimeSpan);

 request.obj.send(null);

}



function ajax_response(request)

{

 this.request = request.obj;

 this.value = null;

 this.lastState = null;

 this.status = request.obj.status;

 this.context = request.context;

 this.value = this.request.responseText;

 this.clientid = this.request.getResponseHeader( "TS-ClientID");

 this.sTime = this.request.getResponseHeader( "S-Time" );//获取header

 this.objName = this.request.getResponseHeader( "Obj-Name" );

    TSTimeSpan = this.request.getResponseHeader( "TS-SpanTime" ); 

 return this;

}

  

你可能感兴趣的:(JavaScript)