보통 2 ~ 4 초가 걸리며 작업하는 데 너무 오래 걸리는 것처럼 보입니다.왜이 AJAX 호출이 오래 걸리나요?
$("#IngTable").html("<center><img src=../img/loading.gif /></center>");
var search = document.getElementById("IngSearch").value;
var apiLink = "/API/Ingredient/Search?search=" + search;
$.ajaxSetup({ accepts: "application/json" });
$.ajax({
url: apiLink,
type: "GET",
success: function(data) {
var ingredients = JSON.parse(data);
var htmlIngred = "";
for (var i = 0; i < ingredients.length; i++) {
htmlIngred += "<tbody><td><span>" + ingredients[i].Name + "</span></td><td><a class='btn btn-success btn-mini' onclick='addIngred(" + ingredients[i].IngredientId + ");'>Add</a></td></tbody>";
}
document.getElementById("IngTable").innerHTML = htmlIngred;
},
error: function (a, b, c) { }
});
그리고 여기에 웹 API 컨트롤러 : 다음은 AJAX입니다
이[HttpGet]
public string IngredientSearch(string search)
{
var sw = Stopwatch.StartNew();
var db = new Glubee.Model.GlubeeEntities();
var results = db.Ingredients.Where(x => x.Name.Contains(search)).ToArray();
sw.Stop();
return JsonConvert.SerializeObject(results);
}
성분 표에서 16 일이 각각 긴에는 20 개 이상의 문자를 인하지 있습니다.
문제가 너무 오래 걸릴 수있는 사람이 있습니까?
편집 : 정확히 아직 느린 무엇
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
데이터베이스에 프로파일 러를 넣고 SQL 실행을 확인하십시오. – benPearce
IngredientSearch가 너무 오래 걸리는 것입니까? – rikitikitik
@benPearce IngredientSearch 함수의 시작과 끝 부분에 스톱워치를 넣고 30-100ms 사이에 도착합니다. 대부분 40ms에 가깝기 때문에 문제는 그 함수에 있다고 생각하지 않습니다. – Kyle