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;
}

浙公网安备 33010602011771号