我正在使用jQuery ajax在我的asp.net页面中调用webmethod,这是代码:
$.ajax({
type: 'POST',
url: 'Home.aspx/GetPlantInfo',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (response) {
info= JSON.parse(response.d);
$("#PlantName").val(info.Name);
.
.
.
},
failure: function (r) {
alert(r.d);
}
});
webmethod执行简单的linq查询并将结果序列化为JSON字符串,这不到半秒钟。这是webmethod代码:
[WebMethod]
public static string GetPlantInfo()
{
MyDataClassesDataContext dc = new MyDataClassesDataContext();
Plant p = (from x in dc.Plants
where x.Name == "someName"
select x).FirstOrDefault();
string plantJson = JsonConvert.SerializeObject(p);
return plantJson;
}
但是ajax调用需要10-15秒才能完成。我检查了ajax时间,显然大部分时间是“等待”时间,发送和接收时间可以忽略不计。我没有锁定谷歌搜索这个问题。 我问的是这个“等待”的时间究竟是什么?是IIS服务器的问题吗?我的代码有问题吗?