`
wangflood
  • 浏览: 41721 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

客户端同步,服务器端异步

阅读更多

最近在公司碰到点难题。关于点击button拿到最新的汇率。

 

之前的需求是客户端AJAX请求为同步,async=false.点击一次按钮,在前一个请求没有返回以前,不发出新的请求的。

 

 

$.ajax({
  url: "test.html",
  async:false,
  success: function(){
      //todo
  }
});
 

 

后来需求需要客户端ajax请求异步。async:true。比如:连续点击10次,响应错误显示error message和成功返回更新数据都只与最后ajax请求相关。

 

1.那么怎么处理知道是最后一次请求呢??

设一个时间戳,记住最后一后请求的时间,

 

$.ajax({
  url: "test.html",
  async:true,
  time:new Date(),
  success: function(){
      //todo
  },error:function(){ }
});

 服务端不改变time的值,返回来。success里面比较一下时间就行了。

 

2.error message处理。

如果是timeout error message呢。如何判断是最后一次的error呢。根本不可能返回time param.

讨论了许久,有个比较垃圾的方式:lastSuccess=false,如果最后一次成功返回,就lastSuccess=true.

在error里面,if(lastSuccess==fasle){显示error message}.

特殊情况,如果第一次失败,那么会show error message.第二次成功了,那么会清除error message,然后更新数据。

 

3.考虑一种极端情况,如果点击三次,倒是最后一次请求最先返回,有可能吗?如果有可能,那么上面分析的逻辑是对的吗?

我用Thread.sleep()的方式来unit test。一直不成功。ajax响应会按请求的顺序返回。

我的debug的方法,把前一个ajax response请求hold住,后面也一个请求居然排队??

为什么呢。servlet不是对于每个请求会有一个新的servlet吗??

 

4.请问,两个用户访问同一个servlet,如果a用户的请求没有返回,b的请求可以发出吗?a,b同一台机器同一browser?

同一个pc,不同browser??不同pc呢?

 

5.难道servlet对于同一session的用户,请求是单线程的??

 

6.jquery.ajax{async:true},只是表示客户端是多线程的,服务器端不确定?

 

 

 

 

分享到:
评论

相关推荐

    linux网络编程-客户端与服务器端异步通信,fcntl,accept

    总结来说,Linux网络编程中的客户端与服务器端异步通信通过`fcntl`和非阻塞`accept`函数实现,可以提高系统处理并发请求的能力,降低延迟,提高服务效率。理解并熟练运用这些函数对于构建高效、可扩展的网络应用至关...

    同步Socket(客户端与服务器端)

    同步Socket,也称为阻塞Socket,...综上所述,同步Socket是实现客户端与服务器端数据交换的基础工具,它的主要特点是简单易用但可能会影响程序的并发性能。理解和熟练掌握同步Socket的使用,对于进行网络编程至关重要。

    C#网络编程Demo(客户端+服务器端+同步+异步).zip

    本Demo包含了客户端和服务器端的实现,同时展示了同步和异步两种通信方式,这对于理解C#网络编程的深度和广度非常有帮助。 首先,我们来探讨客户端和服务器端在网络编程中的作用。客户端通常发起连接请求,向服务器...

    Socket客户端,服务端同步异步实现

    4. **客户端同步**: 同步客户端在发送请求后会等待服务器的响应,这期间不能进行其他操作。这种方式适用于交互频繁且对实时性要求较高的场景,但可能会影响客户端的性能。 在提供的文件列表中,"SocketTest"可能...

    DataBrigde 对象 完成客户端与服务器端的同步或异步通信

    //完成客户端与服务器端的同步或异步通信 //与此对象也有一个服务器端的 DataBrigde 对象,用于接收并返回服务器端信息 //通信数据格式 XML文本 //提交与返回都是通过 dataList 进行与XML文本的转换

    android 客户端 和 服务器端

    在Android应用开发中,客户端与服务器端的交互是不可或缺的一部分,这使得用户能够获取和发送数据,实现功能如登录注册、数据同步等。本话题主要关注Android客户端与服务器端通过GET和POST方法进行数据传输的基本...

    传统蓝牙客户端和服务器端通信

    本文将深入探讨“传统蓝牙客户端和服务器端通信”的核心概念、实现方式以及Android平台上的具体应用。 蓝牙技术允许设备之间建立点对点或点对多点的连接,它在许多场景下都非常实用,比如音频传输、健康监测设备的...

    TCP客户端+服务器 异步编程

    在这个项目中,我们探讨的是使用C#语言进行TCP异步编程,创建一个聊天程序,包括服务器端和客户端。 TCP异步编程是C#中的一个重要特性,它允许程序在执行网络操作时不阻塞主线程,从而提高应用的响应性和性能。在...

    Visual Studio 实现TCp socket 异步通信,客户端和服务器端

    本篇将详细探讨如何在Visual Studio中创建TCP Socket的客户端和服务器端,并实现异步通信。 首先,我们要了解TCP Socket的基本概念。TCP Socket是基于TCP协议的通信接口,它保证了数据包的有序性和无丢失性。异步...

    若水新闻客户端和服务器端

    【标题】:“若水新闻客户端和服务器端” 这个标题表明我们正在讨论的是一个名为“若水新闻”的新闻应用,它包含客户端(通常是Android应用程序)和服务器端(负责处理客户端请求和提供数据的服务)。这个系统的...

    WSAAsyncSelect实现简单聊天工具——包含客户端和服务器端

    本项目旨在通过`WSAAsyncSelect`来实现一个简单的聊天工具,包括客户端和服务器端,让我们深入探讨这个话题。 ### WSAAsyncSelect简介 `WSAAsyncSelect`是Windows Socket API提供的一个函数,允许应用程序注册一个...

    VC++远程控制计算机(客户端和服务器端)

    在这个“VC++远程控制计算机(客户端和服务器端)”项目中,开发者使用了微软的Visual C++编程环境,结合WinSock库,实现了异步选择模型来达到这一目的。下面将详细介绍这个项目中的关键技术点。 首先,WinSock是...

    聊天工具(包括客户端与服务器端)

    本文将深入探讨“聊天工具”的实现,包括客户端与服务器端的设计与交互,以此来帮助读者理解计算机网络中如何实现客户端与服务器进行通信的聊天工具。 首先,我们需要了解客户端与服务器的概念。客户端是用户使用的...

    c# socket同步通讯 异步通讯 客户端 服务端 实例

    2. **BeginAccept/EndAccept**:服务器端使用BeginAccept启动非阻塞的接受连接请求,然后可以继续监听其他连接。当有新连接时,EndAccept用于获取新Socket对象。 3. **BeginReceive/EndReceive** 和 **BeginSend/...

    Android客户端与服务器端的json数据交互(服务端+客户端)

    在Android应用开发中,客户端与服务器端的数据交互是不可或缺的一部分,JSON(JavaScript Object Notation)作为轻量级的数据交换格式,被广泛应用于Android与服务器之间的通信。本篇将详细讲解如何在Android客户端...

    c#写的Scoket异步高并发并客户端和服务器

    在传统的同步Socket编程中,服务器端每接收一个连接请求就需要分配一个线程进行处理,当并发连接数量过大时,系统可能会因为线程过多而资源耗尽。而异步Socket编程则通过回调机制,让服务器可以在不阻塞主线程的情况...

    C# Netty 客户端,服务器端包含接双向接收

    标题中的"C# Netty 客户端,服务器端包含双向接收"揭示了这是一个关于使用C#语言实现基于Netty框架的客户端和服务器端通信的项目。Netty是Java平台上的一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可...

    无线点菜系统(客户端和服务器端交互)

    同时,客户端需实时同步服务器端的数据,确保点菜信息的即时更新。此外,客户端还可能包含一些附加功能,如推荐菜品、优惠活动显示等。 服务器端(WirelessOrder_Service)则负责处理来自客户端的所有请求,执行...

    C分块传输,包括客户端与服务器端

    根据给定的文件信息,我们可以深入探讨“C#分块传输”这一主题,涉及客户端与服务器端的交互机制。在现代网络应用中,分块传输是一种常见且重要的数据传输技术,尤其是在处理大文件或在网络状况不佳的情况下,它可以...

    c语言服务器客户端异步通信

    在`src`目录下的源代码可能包含了实现这些功能的文件,例如服务器端和客户端的主程序、网络通信的辅助函数、数据解析的代码等。通过阅读和分析这些代码,可以深入理解C语言在异步服务器客户端通信中的具体应用。 总...

Global site tag (gtag.js) - Google Analytics