Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在服务器上处理多个过时请求_C#_Javascript_Asp.net Mvc_Ajax_Map - Fatal编程技术网

C# 在服务器上处理多个过时请求

C# 在服务器上处理多个过时请求,c#,javascript,asp.net-mvc,ajax,map,C#,Javascript,Asp.net Mvc,Ajax,Map,在我的应用程序中,我有一个地图,当用户对地图进行任何操作时,会向服务器发送一个请求,要求它为新边界框提供地图,但现在的问题是,如果用户说快速放大或连续平移地图,我们最终会向服务器发送许多请求,并将结果发送回客户端 现在我想在服务器端和客户端更优雅地处理这个问题。我已经想到了在客户端处理相同问题的方法,但我需要一种在服务器端优雅地处理相同问题的方法。我的意思是,我不想最终处理过时的请求,因为我的客户无论如何都不希望得到frm的响应。我有没有办法做到这一点 我正在.NET框架中使用MVC体系结构 提

在我的应用程序中,我有一个地图,当用户对地图进行任何操作时,会向服务器发送一个请求,要求它为新边界框提供地图,但现在的问题是,如果用户说快速放大或连续平移地图,我们最终会向服务器发送许多请求,并将结果发送回客户端

现在我想在服务器端和客户端更优雅地处理这个问题。我已经想到了在客户端处理相同问题的方法,但我需要一种在服务器端优雅地处理相同问题的方法。我的意思是,我不想最终处理过时的请求,因为我的客户无论如何都不希望得到frm的响应。我有没有办法做到这一点

我正在.NET框架中使用MVC体系结构

提前谢谢


另外,所有这些查询显然都是ajax查询

有多种方法可以做到这一点:

第一种方式: 在从客户端接收新边界窗口信息请求的服务器端,让服务器操作在开始处理之前等待一小部分时间(时间的持续时间可以稍后微调)。如果在此等待时间内有来自同一客户端(针对同一缩放操作)的新请求,然后让旧请求被丢弃。当等待过后没有新的请求从客户端到达时,服务器将当前请求解释为最终请求并处理该请求。为了最小化客户端出现的延迟,服务器可以准备处理请求所需的资源,这些资源不依赖于缩放参数的确切细节

第二种方法(可与第一种方法一起使用):
如果服务器有能力,请使用多个线程来处理客户端请求。通过这种方式,您可以安全地丢弃过时的结果,并且仍然可以避免出现在客户端上的缩放延迟。

有多种方法可以做到这一点:

第一种方式: 在从客户端接收新边界窗口信息请求的服务器端,让服务器操作在开始处理之前等待一小部分时间(时间的持续时间可以稍后微调)。如果在此等待时间内有来自同一客户端(针对同一缩放操作)的新请求,然后让旧请求被丢弃。当等待过后没有新的请求从客户端到达时,服务器将当前请求解释为最终请求并处理该请求。为了最小化客户端出现的延迟,服务器可以准备处理请求所需的资源,这些资源不依赖于缩放参数的确切细节

第二种方法(可与第一种方法一起使用):
如果服务器有能力,请使用多个线程来处理客户端请求。这样,您就可以安全地丢弃过时的结果,并且仍然可以避免出现在客户端上的缩放延迟。

让服务器处理请求很好,用户体验不应受到影响。。通过这种方法,如果我在服务器上等待一秒钟左右,对用户的响应也会延迟,用户无法立即得到反馈。线程不是一个选项,因为我们认为线程管理是一件痛苦的事情。我不是指一秒钟左右的等待时间。这应该足以让服务器感觉到对操作发出了另一个请求。通常在您提到的场景中,这一次只需几秒钟。您认为两个连续的请求从客户端发送到服务器之间需要多长时间(显然,我指的是用户在连续缩放操作下发出这两个请求的情况)?让服务器处理请求很好,用户体验不应该受到影响。。通过这种方法,如果我在服务器上等待一秒钟左右,对用户的响应也会延迟,用户无法立即得到反馈。线程不是一个选项,因为我们认为线程管理是一件痛苦的事情。我不是指一秒钟左右的等待时间。这应该足以让服务器感觉到对操作发出了另一个请求。通常在您提到的场景中,这一次只需几秒钟。您认为从客户端发送到服务器的两个连续请求之间需要多长时间(显然,我指的是用户在连续缩放操作下发出这两个请求的情况)?