电话:0731-83595998
导航

J2SE综合:与你一起讨论AJAX进一阶应用

来源: 2017-12-21 14:37

 百度广告

  解决的问题:当通过AJAX多次提交请求,而服务器端反映比较慢,导致只有最后一个请求被响应的现象。
提交请求:ajaxtest.jsp

  var count = 0;
var http_request;
http_request = false;
if(window.XMLHttpRequest) { //Mozilla 浏览器
if (http_request.overrideMimeType) {//设置MiME类别
}
else if (window.ActiveXObject) { // IE浏览器
http_request = new ActiveXObject("Msxml2.XMLHTTP");
try {
} catch (e) {}
}
window.alert("不能创建XMLHttpRequest对象实例.");
}
// 确定发送请求的方式和URL以及是否同步执行下段代码
http_request.send(null);
// 处理返回信息的函数
if (http_request.readyState == 4) { // 判断对象状态
var rtext = http_request.responseText;
"
} else { //页面不正常
}
}

  function refreshTable() {
send_request('ajaxtestresponse.jsp?count=' + (++count) + '&refreshtime='+k);

  //window.setTimeout('refreshTable()',10000);

  响应请求:ajaxtestresponse.jsp

  其中,提交请求包含一个技术参数,响应请求延迟5秒左右的时间,再返回请求,以表示系统延迟比较大。

  在tomcat中运行http://localhost:8080/ajaxtest.jsp 点击按钮,发送请求,然后等待回应,如果在没有回应之前,连续点击按钮提交请求,虽然后台接收到了这些请求,但是由于对运行状态的判断,web浏览器只能接收到最后一个返回的响应。

  为了让浏览器能够全部接受返回的信息,有两个办法:
// 确定发送请求的方式和URL以及是否同步执行下段代码
改为
表示等到响应接收到后,才能进行其它操作, 这样web浏览器发送请求后会有较长时间的停顿,影响客户体验,不好。

  2、将
k = new Date();
}
function refreshTable() {
if(http_request.readyState!=4) {
return;
}
send_request('ajaxtestresponse.jsp?count=' + (++count) + '&refreshtime='+k);
增加状态判断,并进行延迟。 客户体验好。

编辑推荐:

下载Word文档

温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)

网络课程 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

精品课程

更多
10781人学习

免费试听更多

相关推荐
图书更多+
  • 电网书籍
  • 财会书籍
  • 其它工学书籍
拼团课程更多+
  • 电气拼团课程
  • 财会拼团课程
  • 其它工学拼团
热门排行

长理培训客户端 资讯,试题,视频一手掌握

去 App Store 免费下载 iOS 客户端