0 0

ajax异步怎么实现这样的效果???10

传统的 Web 应用程序都使用请求/响应模型从服务器上获得完整的 HTML 页面。常常是点击一个按钮,等待服务器响应,再点击另一个按钮,然后再等待,这样一个反复的过程。
最近刚刚分配一个查勤系统模块。

整个系统的大致流程这样:
管理员选择好值班人后可以通过发送按钮发送,让值班人看到,值班人即时响应,显示他此时在岗,如果值班人不响应说明不在岗 。

自己的想法是:值班人表里建一个isduty字段(初始为0),用于判断是否在班,管理员通过选择部门的值班人,然后发送请求
发送的同时,把isduty字段改为1,值班人页面实现页面定时刷新,读取最新的isduty字段,发现是1后,调用弹出对话框值班人确认后把isduty改为2,同时管理员页面也定时刷新,读取为2的话表示值班人已经响应,同时弹出值班人在岗对话框,确认后把isduty改为默认的0.

这样导致页面要定时刷新,增加了负担,效率低下
据说ajax异步,使用 异步发送请求到后台修改数据库可以解决
对ajax技术不是很懂,希望大家给点意见
2008年7月01日 19:58

5个答案 按时间排序 按投票排序

0 0

值班人页面实现页面定时刷新改为在页面上做个定时器,定时向服务器发送ajax请求,其他按照你所说的做.这样就不用定时刷新页面了.
一个例子:

window.onload=function myOnload(){
   setInterval('send()',100);
}
function send(){
  var url="你要访问的url?id=值班员id"
  var content=""
  http_request = false;
  if(window.XMLHttpRequest) { 
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType) {
       http_request.overrideMimeType("text/xml");
    }
  }
  http_request.onreadystatechange = callback;
  http_request.open("post", url, true);
http_request.send(content);

2008年7月04日 16:42
0 0

hjgundam

引用

所有如果想获得xmlhttp返回值必须用同步,异步无法得到返回值。


jQuery的实现早就能做到这一点了,其他的实现也有很多.
不要误导人家呀!

2008年7月02日 16:12
0 0

所以一般而言你可能还是需要用ajax来定时轮询,我觉得如果这样你可以尽量减少访问数据库的次数,这些数据可以放在内存中。

当然,还有基于HTTP长连接的服务器推的技术。比如comet的开源实现pushlet,现在支持的服务器也越来越多了,没记错的话,tomcat6.0,jetty,GlassFish V2等很多都是有的。到底有没有必要采用这种技术,你可以研究研究。

这里有个简单的关于comet的介绍
http://www.ibm.com/developerworks/cn/websphere/techjournal/0711_col_burckart/0711_col_burckart.html

2008年7月02日 00:26
0 0

首先要说的你说AJAX的异步可能不像你想象的那样

找个摘来的说明http://www.11zhuce.com/seo/Ajax-xmlhttp.html

var returnValue = null; 
xmlhttp = createXmlHttp(); 
xmlhttp.onreadystatechange = function() { 
    if(xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
        if (xmlhttp.responseText == "true") { 
            returnValue = "true"; 
        } 
        else { 
            returnValue = "false"; 
        } 
    } 
}; 
xmlhttp.open("Post",url,true); //异步传输 
xmlhttp.setRequestHeader("If-Modified-Since","0"); //不缓存Ajax
xmlhttp.send(sendStr); 
return returnValue;


    如果是同步(false),返回值是true或false,因为执行完send后,开始执行onreadystatechange,程序会等到onreadystatechange都执行完,取得responseText后才会继续执行下一条语句,所以returnValue一定有值。
    如果是异步(true),返回值一定是null,因为程序执行完send后不等xmlhttp的响应,而继续执行下一条语句,所以returnValue还没有来的及变化就已经返回null了。
    所有如果想获得xmlhttp返回值必须用同步,异步无法得到返回值。
    同步异步使用xmlhttp池时都要注意:取得xmlhttp时只能新建xmlhttp,不能从池中取出已用过的xmlhttp,因为被使用过的xmlhttp的readyState为4,所以同步异步都会send但不执行onreadystatechange。

2008年7月02日 00:12
0 0

AJAX仍然是基于http协议的,除了感觉上有好一点外,和刷新页面对服务器的压力是没有太大区别的。
因此如果你的目的是考虑服务器负担和效率问题的话,就不要选基于http的方案,除非http服务器端是你高度制定的。
话说回来,你这个问题要细致讨论的。
1.有多少值班人?
2.你的服务器是主要跑这个业务的么?
如果仅仅几个或者几十个,服务器主要跑这个业务,而且(资源)空闲的很,那用什么技术都无所谓了,http仍然可以用(当然包括ajax技术,还有一种推技术,你查一下资料),是否长连接就无所谓了。
反之,长连接的技术恐怕就不能用了,就要向QQ那样用UDP的技术了。

一定要明白ajax就是背后的http.仅仅是在表现上有所区别,(异步这个说法还是不解释的好,越描越黑)。
ajax能完成你的需求,关键是资源允许不允许。

2008年7月01日 22:26

相关推荐

    利用Ajax+Jquery实现异步进度条效果

    "利用Ajax+Jquery实现异步进度条效果"这个主题正是围绕这一目标展开,它涉及到C#后端开发、.NET框架、Ajax技术以及Jquery库的前端应用。下面将详细阐述这些知识点。 首先,C#是一种面向对象的编程语言,广泛应用于...

    使用ajax实现异步提交的例子

    在这个例子中,我们将探讨如何使用AJAX实现异步更新城市下拉菜单,当用户在省份下拉菜单中做出选择时。 首先,我们需要创建HTML结构,包括两个`<select>`元素,一个用于省份,另一个用于城市。省份的选项可以通过...

    导入JS就可以实现自动注册AJAX异步操作的动画效果(懒人的福音)

    WEB开发中经常会用到AJAX来进行异步操作 通常在网络状况差的情况下 可能你的一个操作会有延迟 而客户端如果没有接受到提示可能会导致多次发送 如果你使用了jQuery,那么你可以使用这里提供的loading.js 只要引入到...

    树形结构的多种实现,其中有Ajax异步实现

    在本主题中,我们将深入探讨树形结构的多种实现方式,特别是涉及到Ajax异步实现的树形菜单。在实际项目开发中,这种技术能够提供动态交互的用户体验,使用户能够方便地浏览和操作层次化的信息。 首先,让我们理解树...

    Jquery+Ajax实现异步更新

    通过查看和学习这个文件,你可以更好地理解如何结合jQuery和Ajax来实现异步更新,以及如何处理返回的数据和更新DOM元素。 总的来说,掌握jQuery和Ajax的异步更新技术对于提升Web应用的交互性和响应性至关重要。通过...

    JQ+ajax实现异步调用

    本话题主要聚焦于使用jQuery(简称JQ)库结合Ajax技术来实现异步调用的过程。下面将详细阐述这一主题。 ### jQuery和Ajax简介 **jQuery** 是一个轻量级的JavaScript库,它简化了DOM操作、事件处理、动画效果以及...

    ajax进度条,实现很炫的效果

    在现代Web开发中,用户体验是至关重要的,Ajax(异步JavaScript和XML)技术的使用极大地提升了网页的交互性和响应速度。Ajax进度条是Ajax请求过程中显示加载状态的一种可视化方式,它能够提供用户友好的反馈,让用户...

    AJAX实现地图拖动效果

    AJAX(Asynchronous JavaScript and XML)技术能够帮助我们实现这种效果,让用户无需刷新整个页面就能实时更新地图区域。本文将详细介绍如何利用AJAX来实现类似Google地图的地图拖动功能。 首先,我们需要理解AJAX...

    ajax 异步实现两级联动下拉列表和输入提示

    本示例通过AJAX技术实现了这种功能,并结合了简单的JS和CSS设计,为用户提供实时更新的数据展示。以下是对这个项目的详细解析: 首先,我们要理解AJAX(Asynchronous JavaScript and XML)的核心概念。它允许我们在...

    利用Linq + Jquery + Ajax 异步分页的实现

    本篇文章将详细讲解如何利用Linq、jQuery和Ajax技术实现这种高效、轻量级的异步分页功能。 首先,Linq(Language Integrated Query,语言集成查询)是.NET Framework中的一种强大的查询工具,它为C#和VB.NET等编程...

    AjAX异步页面处理技术

    **Ajax(Asynchronous JavaScript and XML)异步JavaScript与XML技术是Web开发领域中的一项核心技术,它使得网页可以实现部分刷新,无需重新加载整个页面就能获取并更新数据。这种技术极大地提升了用户体验,尤其在...

    jQuery+ajax异步加载分页代码

    总结,这个jQuery+Ajax异步加载分页代码实现了动态加载数据,提高了用户体验,同时允许自定义分页设置,具有很好的灵活性和实用性。通过理解并实践这个示例,开发者可以更好地掌握Ajax和jQuery在实际项目中的应用。

    layui-tree实现Ajax异步请求后动态添加节点的方法

    在本示例中,我们需要实现一个功能:当用户在树形菜单中选择某一节点时,通过 AJAX 异步请求向后台添加新的子节点,并在前端动态显示出来。 首先,我们看到 HTML 结构中有一个 `#demo` ID 的 `ul` 元素,它是 layui...

    jsp页面 列表 展示 ajax异步实现方法.docx

    总结来说,实现JSP页面列表的AJAX异步加载,主要包括以下几个步骤: 1. 创建JSP页面,定义基本的HTML结构。 2. 在服务端编写处理AJAX请求的逻辑,返回JSON数据。 3. 在客户端使用JavaScript(如jQuery)发送AJAX请求...

    ajax异步刷新,一般处理程序返回datatable

    在客户端JavaScript中,接收到JSON响应后,可以使用诸如jQuery的`$.parseJSON()`或者原生的`JSON.parse()`函数将其转换回JavaScript对象,然后动态更新HTML元素,实现异步刷新效果。 总的来说,这个例子展示了如何...

    Ajax 异步请求等特效

    **Ajax异步请求与用户体验** Ajax(Asynchronous JavaScript and XML)技术是Web开发中的一个重要工具,它使得网页可以在不刷新整个页面的情况下与服务器进行数据交互。这种技术在现代Web应用中广泛使用,因为它极...

    Vue form 表单提交+ajax异步请求+分页效果

    在上面的代码中,我们可以看到使用 `XMLHttpRequest` 或 `fetch` API 实现Ajax异步请求的示例代码。 三、分页效果 分页效果是指在Web应用程序中实现分页功能的技术。通过使用分页效果,我们可以将大量数据分页显示...

    ajax实现的照相机效果

    【标题】"ajax实现的照相机效果"是一个利用JavaScript和Ajax技术来模拟真实照相机功能的应用。这个项目展示了如何在Web页面上实现一种交互式的、动态的拍摄体验,让用户能够实时预览、拍摄并保存图片。 【描述】"蛮...

Global site tag (gtag.js) - Google Analytics