【发布时间】:2014-02-13 11:43:17
【问题描述】:
我有一个对 c# asmx web 方法的 jquery ajax 调用,该方法执行一些处理,并在内部调用更多 api 的 \ DB 操作等,大约需要 20-30 秒
网络方法
[WebMethod]
public void dummy()
{
File.Create(@"C:\test\test" + DateTime.Now.Millisecond.ToString() + ".txt");
System.Threading.Thread.Sleep(60000);
}
AJAX 调用
$.ajax(
{
url:Service.asmx/dummy",
contentType: "application/json; charset=utf-8",
dataType: "json",
type: "POST",
success: function (strData) {
alert('done');
}
});
ajax 调用在一个循环中被触发了 2 次,但是 web 方法只被调用了一次,所以我尝试了async: false,然后 web 方法被点击了两次,但是在 60 秒延迟之后。
我做错了什么?
【问题讨论】:
-
您的代码看起来不错,应该可以工作。你是如何测试该方法只被命中一次的?
-
:) 因为文件只创建了一次。
-
但是如果两个调用都通过相同的毫秒...您可能只是覆盖了文件...
标签: c# jquery ajax asmx webmethod