当你点击它时我有按钮 它运行ajax,将id发送给控制器 现在控制器做了什么,它在服务器端没有错误, 但在控制器的动作中我有代码与restsharp 发送请求以休息Web服务其工作正常(), 但是这部分()在foreach中并运行5或......时间 当我这样做的时候ajax需要很长时间并运行ajax代码的错误部分 我该怎么办?
ajax代码:
$(document).on("click", "#btn-submit", function () {
$.ajax({
type: 'POST',
url: '/Panel/CheckRefOrderCode',
data: JSON.stringify({
factorrefid: $("#ref-check").val()
}),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (result) {
if (result.DntSuccess) {
} else {
}
},
error: function () {
}
});
});
动作代码
foreach(string s in str)
{
var client = new RestClient("http://**.com/api/v1/orders/status?support_code=71GD4A");
var request = new RestRequest(Method.POST);
request.AddHeader("token", "15befa43");
IRestResponse response = client.Execute(request);
RefOrderJsonViewModel.RefOrderJson reforderbackJson =
JsonConvert.DeserializeObject<RefOrderJsonViewModel.RefOrderJson>(response.Content);
if (reforderbackJson.status.ToLower() == "ok")
{
performed += reforderbackJson.data.performed;
order_status += reforderbackJson.data.order_status + "^";
}
}
我将此添加到web.config
<httpRuntime executionTimeout="100000000" maxRequestLength="262144" />
答案 0 :(得分:0)
为ajax调用添加超时:
$(document).on("click", "#btn-submit", function () {
$.ajax({
type: 'POST',
url: '/Panel/CheckRefOrderCode',
data: JSON.stringify({
factorrefid: $("#ref-check").val()
}),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
**timeout: 10000 // sets timeout to 10 seconds**
success: function (result) {
if (result.DntSuccess) {
} else {
}
},
error: function () {
}
});
});
查看this post如何处理超时错误。
答案 1 :(得分:0)
问题仍然存在;
但我用这个
Parallel.ForEach(myEnumerable, obj =>
{
// ...
});
代替常规
的foreach
并行地做foreach的身体, 时间在减少, 问题解决了