首页 > 其他分享 >ajax使用回调函数的例子(原生代码和jquery代码)

ajax使用回调函数的例子(原生代码和jquery代码)

时间:2023-04-14 11:38:54浏览次数:63  
标签:jquery function readyState xmlHttp 代码 ajax html txt

ajax使用回调函数的例子(原生代码和jquery代码)



一、 ajax代码存在的问题(异步交互的问题)

ajax所请求的url,如果因为网络等问题,很久没有回应,则给用户造成“假死”的现象。

代码如下:

xmlHttp = GetXmlHttpObject();
 
xmlHttp.open();
xmlHttp.send();
//下面这句,会一直等待,直到有返回值
alert(xmlHttp.responseText);

 

 

二、 ajax代码异步交互的解决方式

1. Javascript原生ajax代码

先创建xmlhttp对象,然后执行open和send,通过xmlHttp.onreadystatechange = stateChanged回调函数来处理返回值。

readyState== 0 //尚未加载
readyState== 1 //正在加载
readyState== 2 //加载完毕
readyState== 3 //正在处理
readyState== 4 //处理完毕 
<script type="text/javascript" >
//创建ajax
function testAjax(){
xmlHttp = GetXmlHttpObject();
if(xmlHttp == null){
alert("浏览器不支持");
return;
}
 
var url = "http://www.qq.com";
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.open("GET", url, true);
xmlHttp.send();
//document.getElementById("txt").innerHTML=xmlHttp.responseText;
}
 
 
//创建不同的ajax对象
function GetXmlHttpObject(){
var xmlHttp = null;
  try{
  //firefox opera safari
xmlHttp = new XMLHttpRequest();
  }catch (e){
//ie
try{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
 
//监控状态
function stateChanged() 
{ 
 
  if (xmlHttp.readyState==4)
  { 
  //document.getElementById("txt").innerHTML=xmlHttp.responseText;
alert(xmlHttp.responseText);
  }
} 
</script>

2. jquery中ajax的写法

(1)Post写法

 

var txt = $("input").val();//换的某个输入框的value
//使用post方法,传输值为suggest=txt,绑定回调函数
$.post("test.html", {suggest:txt}, function(result){
$("#div").html(result);
});

 

(2)Get写法

 

var txt = $("input").val();//换的某个输入框的value
//使用get方法,传输值为suggest=txt,绑定回调函数
$.get("test.html", {suggest:txt}, function(result){
$("#div").html(result);
});

 

(3)ajax写法(通过http请求)

 

$.ajax({
type: "get",
url: "http://www.cn.com/rss",
beforeSend: function(XMLHttpRequest){
//ShowLoading();
},
success: function(data, textStatus){
$(".ajax.ajaxResult").html("");
$("item",data).each(function(i, domEle){
$(".ajax.ajaxResult").append("<li>"+$(domEle).children("title").text()+"</li>");
});
},
complete: function(XMLHttpRequest, textStatus){
//HideLoading();
},
error: function(){
//请求出错处理
}
});

标签:jquery,function,readyState,xmlHttp,代码,ajax,html,txt
From: https://blog.51cto.com/u_16070335/6189748

相关文章

  • MATLAB代码:考虑多种天气条件下光伏电站太阳能辐射量预测
    MATLAB代码:考虑多种天气条件下光伏电站太阳能辐射量预测关键词:辐射量预测光伏预测多种天气因素参考文档:《SolarRadiationPredictionandEnergyAllocationforEnergyHarvestingBaseStations》仿真平台:MATLAB+CPLEX平台主要内容:代码主要做的是如何利用预测光伏电站......
  • MATLAB代码:基于列约束生成法CCG的两阶段问题求解
    MATLAB代码:基于列约束生成法CCG的两阶段问题求解关键词:两阶段鲁棒列约束生成法CCG算法参考文档:《Solvingtwo-stagerobustoptimizationproblemsusingacolumn-and-constraintgenerationmethod》仿真平台:MATLABYALMIP+CPLEX主要内容:代码构建了两阶段鲁棒优化模型,并......
  • MATLAB代码:考虑电动汽车负荷随机性的蓄电池容量优化配置
    代码代码MATLAB代码:考虑电动汽车负荷随机性的蓄电池容量优化配置关键词:蓄电池容量优化配置 储能优化配置 中长期配置并网波动性参考文档:《不确定环境下并网型光储微电网的容量规划》《考虑电动汽车有序充电的光储充电站储能容量优化策略_李景丽》仅参考部分模型,非完全复现......
  • MATLAB代码:考虑能源集线器参的电热综合能源市场双层出清模型
    MATLAB代码:考虑能源集线器参的电热综合能源市场双层出清模型关键词:综合能源双层模型能源集线器 市场出清 参考文档:《ParticipationofanEnergyHubinElectricityandHeatDistributionMarkets:AnMPECApproach》完全复现仿真平台:MATLAB+CPLEX平台优势:代码具有......
  • Ajax_中文乱码总结
    1.发送路径中的参数有中文,在服务器段接收参数值是乱码解决办法:前端(客户端)两次编码,后端(服务器)一次解码!前端:varurl="index.jsp?test=来自前台我不是乱码";url=encodeURI(url);url=encodeURI(url);//两次编码XMLHTTP.open("post",url,true);后端:Stringname=arg0.getParameter......
  • MATLAB代码:基于条件风险价值的合作型Stackerlberg博弈微网动态定价与优化调度
    MATLAB代码:基于条件风险价值的合作型Stackerlberg博弈微网动态定价与优化调度注意:店主有大量P2P分布式交易以及纳什议价的代码,欢迎咨询关键词:微网优化调度条件风险价值合作博弈纳什谈判参考文档:《AcooperativeStackelberggamebasedenergymanagementconsideringpric......
  • matlab 代码基于主从博弈的共享储能与综合能源微网优化运行研究
    matlab代码基于主从博弈的共享储能与综合能源微网优化运行研究综合能源微网与共享储能的结合具有一定的创新性,在共享储能的背景下考虑微网运营商与用户聚合商之间的博弈关系,微网的收益和用户的收益之间达到均衡。采用主从博弈的方法,微网运营商作为上层领导者制定价格策略,用户聚......
  • MATLAB代码:基于模型预测算法的含储能微网双层能量管理模型 模型预测控制 MPC
    MATLAB代码:基于模型预测算法的含储能微网双层能量管理模型   模型预测控制 MPC关键词:储能优化模型预测控制MPC微网优化调度能量管理 参考文档:《ATwo-layerEnergyManagementSystemforMicrogridswithHybridEnergyStorageconsideringDegradationCosts》完......
  • MATLAB代码:基于局部优化的大规模电动汽车随机充放电策略优化
    MATLAB代码:基于局部优化的大规模电动汽车随机充放电策略优化关键词:电动汽车充放电优化电动汽车局部优化充放电策略 参考文档:《OptimalSchedulingforChargingandDischargingofElectricVehicles》完全复现仿真平台:MATLAB+CVX平台主要内容:代码主要做的是电动汽车充......
  • MATLAB代码:考虑安全约束及热备用的电力系统机组组合研究
    MATLAB代码:考虑安全约束及热备用的电力系统机组组合研究关键词:机组组合直流潮流优化调度 参考文档:店主自编文档,模型数据清晰明了仿真平台:MATLAB+CPLEXgurobi平台主要内容:代码主要做的是一个考虑潮流约束的机组组合问题,目前大部分的机组组合都是直接按照经济最优进行计算,......