주 ASP.NET 페이지에서 jQuery ajax를 사용하여 동적 aspx 페이지를로드하는 ASP.NET MVC3 프로젝트가 있습니다. 그래서 기본적으로 사이트가로드되면/Home/Index를 조회 한 다음 Index (aspx)보기에서 jQuery를 여러 줄에 걸쳐/Home/PartOne 및/Home/PartTwo로 호출하여 페이지의 일부분을 채 웁니다.AJAX 요청 대기 시간/대기 시간을 줄이거 나 제거하는 방법
그래서 페이지가로드, 그것은 기본적으로 3 개 요청을 수행 할 때마다 : PartTwo에게 다음 PartOne를 얻기 위해, 인덱스를 얻고,하기
질문을 :. "대기"시간의 어떤 종류가 거기에 왜 세 번째 요청을 실행하려면?이 브라우저 동시 요청 제한을 생각했지만 첫 번째 요청이 완료된 후 왜 실행되지 않습니다?
실험적으로 "OutputCache"attrib "PartTwo"에서 ute는 예상대로 작동하여 빠르게 실행됩니다. 이 문제는 IIS에서 문제가 아니라 어딘가에 있고 내 조치 방법에 들어가기 전에 발생한다는 것을 암시합니다. 여기
크롬 네트워크 프로파일에서 스크린 샷 : 여기가 MvcMiniProfiler에 스크린 샷 - 3 행/값을보고, 내 컨트롤러의 액션 코드를 실행하기 전에 500ms로 기다리고 있습니다.
내 컨트롤러 코드는 다음과 같습니다.
public class HomeController : Controller {
public ActionResult Index() {
// do something here
return View();
}
public ActionResult PartOne() {
// do something here
return View();
}
public ActionResult PartTwo() {
// do something here
return View();
}
}
내 자바 스크립트 :
$(document).ready(function() {
$.ajax({
url: "/Home/PartOne",
cache: false,
success: function (data, textStatus, request) {
$("#TestContainerOne").html(data);
}
});
$.ajax({
url: "/Home/PartTwo",
cache: false,
success: function (data, textStatus, request) {
$("#TestContainerTwo").html(data);
}
});
});
내 index.aspx :
(더 긴 계산, 아니 DB 호출 등) 나는 실제 코드를 냈다 없지만, PartTwo에 대한 코드는 매우 간단하다하지만<h2>Home page</h2>
<div id="TestContainerOne"></div>
<div id="TestContainerTwo"></div>
PartOne.ascx :
<h2>Part One</h2>
PartTwo.ascx :
<h2>Part Two</h2>
도움 말 하시겠습니까?
는 브라우저가 특정 도메인에있을 수있는 동시 요청의 수를 함께 할 수있는 뭔가가있을 수 있습니다. 이 질문의 답을보십시오 : http://stackoverflow.com/questions/561046/how-many-concurrent-ajax-xmlhttprequest-requests-are-allowed-in-popular-browse – Dismissile
나는 그렇게 생각하지 않습니다. 이론적으로 3 개의 요청 만 있기 때문에, 그것들은 연속적으로 실행되어야합니다. 그러나 지연은 서버 측에서 발생합니다. OutputCache를 사용하여 실험에 대한 내 메모를보십시오 - 그것은 브라우저/클라이언트 제한에 의해 발생하지 않는 것이 좋습니다. –
할거리 : a) 웹에서 debug = "false"를 사용하여 빌드를 릴리스하십시오.config (어딘가에 디버그가 true 일 때 캐시 된 일부 항목이 있음) b) IIS 또는 IIS Express에서 코드를 시험해보십시오. 일반적으로 고전적인 dev 서버는 다소 편찮은 것으로 여겨집니다. – Pedro