1. 问题分析

用户管理显示页面:usermanagement.tpl(也可以说是MVC中的V,即视图)

用户管理数据发送页面:usermanagement.php(也可以说是MVC中的M,即模型)

获取用户所在队列的执行,需要一个参数即:username。原本想的是在数据发送页面usermanagement.php中直接用命令执行,然后再将结果发送到显示页面,这样原理上是可行的,但是地理所的用户有70多人,也就是说我要70多人全部执行完毕之后我的页面才能显示出来,这里的处理方式是同步的,也就是说结果不返回是不能看到页面的,这样导致的结果是:页面直接卡死,即使能出来,正常人也根本等不了,因为一条命令执行得3、4秒钟,谁受得了。

实际可行的解决方式是:采用ajax异步请求,重点在异步,我利用用户名处理的逻辑不在usermanagement.php中,而是转移到了usermanagement_show_queues.js中,针对加载完的页面,每一行代表一个用户,逐行读取,也就是说会逐行启动ajax去服务器端请求结果,由于是异步的页面会正常显示,也不会影响其它的事件。

2. ajax代码

$().ready(function(){
$('#userlist_table tr').each(function(i,item){
if(i>1){
$.ajax({
url:'../csm/showuserqueue-ajax.php',
type:'GET',
data:'username='+ $(this).children().eq(2).text(),
dataType:'text',
success:function(data){
$('#userlist_table tr').eq(i).children().eq(8).text(data);
},
error:function(XMLHttpRequest, textStatus, errorThrown){
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}
});
}
});
});

3. 代码解析

这里需要注意的是:$('#userlist_table tr').each()会逐行遍历表格的,后面function(i,item)中i代表的就是表格某一行的id。

success中:$('#userlist_table tr').eq(i).children().eq(8).text(data); 我刚开始的时候采用的是:$(this).children().eq(8).text(data);这样根本显示不出来,而且在firebug中监控中显示:$('......') undefined , 这才想到用前面的方式来写,是标记不到吗?

4. 实现效果图

一、页面加载完后,发送异步请求

二、请求结果返回后,显示在页面上

通过这个我对ajax的异步有了更深的了解,明白了什么时候用异步什么时候用同步。哈哈,加油,坚持每天的学习!!

ajax异步请求实例的更多相关文章

  1. spring HandlerInterceptorAdapter拦截ajax异步请求,报错ERR_INCOMPLETE_CHUNKED_ENCODING

    话不多说,直接上正文. 异常信息: Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING 问题描述: 该异常是在页面发送ajax请 ...

  2. jquery的ajax异步请求接收返回json数据

    http://www.jb51.net/article/51122.htm jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发 ...

  3. MVC&WebForm对照学习:ajax异步请求

    写在前面:由于工作需要,本人刚接触asp.net mvc,虽然webform的项目干过几个.但是也不是很精通.抛开asp.net webform和asp.net mvc的各自优劣和诸多差异先不说.我认 ...

  4. 黑马eesy_15 Vue:03.生命周期与ajax异步请求

    黑马eesy_15 Vue:02.常用语法 黑马eesy_15 Vue:03.生命周期 黑马eesy_15 Vue:04.Vue案例(ssm环境搭建) vue的生命周期与ajax异步请求 1.Vue的 ...

  5. ajax异步请求

    做前端开发的朋友对于ajax异步更新一定印象深刻,作为刚入坑的小白,今天就和大家一起聊聊关于ajax异步请求的那点事.既然是ajax就少不了jQuery的知识,推荐大家访问www.w3school.c ...

  6. jquery Ajax异步请求之session

    写了一个脚本,如下: $(function () { $("#btnVcode").click(function () { var receiveMobile = $(" ...

  7. ajax异步请求Response.Redirect重定向

    一个ajax异步请求报错->捕获异常->重定向错误提示页面.  一个简单的流程 结果一直搞不定.重定向无效.各种百度之. 后来突然想起 ajax的请求是不能在后台重定向的. 如果硬要重定向 ...

  8. AJAX异步请求原理和过程

    AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScript And XML),它不是一种新的编程语言,而是一种使用现有标准的新方法. AJAX 基于 JavaS ...

  9. Ajax异步请求-简单模版

    <script type="text/javascript"> window.onload = function () { document.getElementByI ...

随机推荐

  1. ZOJ 1093 Monkey and Banana (LIS)解题报告

    ZOJ  1093   Monkey and Banana  (LIS)解题报告 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid= ...

  2. vmware能够ping通内网,上不了外网的解决方法

    一般这是由于里面的路由域名服务器没有配置好. issta@ubuntu:~$ ping www.baidu.com ping: unknown host www.baidu.com 先看一下地址解析器 ...

  3. [条款36]绝不重新定义继承而来的non-virtual函数

    看下面的两个类的声明代码: class B { public: void mf(); //something to do }; class D : public B { public: void mf ...

  4. float与position

    使用float会使块级元素的宽高表现为包裹内容(在不设定宽高的情况下)  这是当然的  我们使用float就是使几个div排在一行 当然不可能在宽度上撑满父元素啦  至于高度 不论有没有float 高 ...

  5. MVC3 Razor @RenderSection

    Mvc3的Razor视图引擎还提供了@RenderSection @RenderSection在母版页中占个位,然后让使用此母版页的子页自己去呈现他们的Section. 在母版页_Layout.csh ...

  6. win32 api Windows窗口的创建

    windows窗口的创建有以下几个步骤: 1.创建注册窗口类 2.创建窗口句柄 3.显示更新窗口 4.消息循环 1.创建注册窗口类 所谓创建窗口类就是定义一个WNDCLASS类对象,并将该对象进行初始 ...

  7. IT第六天 - eclipse快捷操作、万年历项目的编写、菱形的打印输出、代码简化

    IT第六天 上午 小项目 1.程序提前结束的退出标志 2.登录用户的模拟,给出适当的提示信息 3.根据要求,寻找规律,然后编写程序 Eclipse的使用 1.快捷键的使用 下午 中小项目 1.九九乘法 ...

  8. java学习之IO装饰设计模式

    装饰设计模式就是对已有的对象的功能进行增强 当想要对已有的对象进行功能增强时,可以定义类,将已有对象传入,基于已有的功能,并提供加强功能.那么自定义的该类称为装饰类. 装饰类通常会通过构造方法接收被装 ...

  9. paip.php-gtk 桌面程序 helloworld总结

    paip.php-gtk 桌面程序 helloworld总结 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.cs ...

  10. RAC Cache Fusion 原理理解

    cache fusion  .   grd  .  drm   .   gcs  .   ges cache fusion  1.RAC是一个数据库执行在多个实例上.通过DLM(Distributed ...