我正在使用 jQuery 和 asp.net 以这种方式执行 ajax 请求:
$.ajaxSetup({
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json"
});
$.ajax({
url: "/WebServices/CompareDates",
data: "{allClients: '" + allClients + "'}",
success: function(msg) {
SuccessCompareDate(msg.d);
}
});
此 ajax 请求每 1 秒执行一次,使用 javascript setInterval。 我平均得到响应 700 毫秒。 但是,我需要在最多 150 毫秒内做出此响应。
我已经使用 WebMethod 而不是 Webservice,但效果也不好。
服务器中一切正常。在 C# Web 服务中也是如此,它只返回一个 bool 值。 我需要表现。 有人可以帮助我吗? 谢谢..
最佳答案
在这种情况下,您的问题很可能是您无法控制的,例如网络延迟。你的语法或方法没有任何问题;但有些因素我们看不到。以下是一些调试路径。其中任何一个都可以产生成果,具体取决于您正在处理的内容以及您上下传递的数据。
- 这可能不是您的服务器端代码。但为了确保这一点,让您的 Web 服务除了返回一个小的文字值之外不进行任何处理,并查看是否存在时间差异。
- 这可能不是你的 jquery ajax。但为了确定起见,请尝试将其作为直接请求,Pekka 建议这样做。
- 我现在不知道您传递的数据的大小。如果它有任何大小,请在尝试上面的第一个选项后考虑尝试仅传递一个很小的值。
- 我不确定你是如何安排时间的。确保在回调方法开始时(在任何渲染之前)获得时间差。有时,渲染问题确实会减慢速度。做同一件事的不同方法可能会花费不同的时间。例如,直接的 javascript .innerHtml 通常非常快,但更新标记的其他方法可能很慢,并且可能因浏览器而异。
- 同样,将 allClients 变量放在一起是否涉及大量处理?如果是这样,请比较此类处理之后开始的时间。
关于.net - 提高ajax请求的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1946227/