이상한 문제가 있습니다. 항상 그런 것은 아니지만 동일한 요청이있는 경우가 있습니다. 내 웹 사이트 (localhost)에서 Autoloading이있는 ExtJS 저장소가 있고 페이지로드 (F5 버튼 누름) 후 서버의 일부 처리기 (* .ashx)에서 JSON이 읽습니다. 처리기는 DB에서 데이터를 가져 와서 JSON으로 직렬화합니다. 그것은 F5를 5 번 눌러 4 번 작동합니다. 5 번 째 json-reader는 success = false와 0 length 데이터를 보여줍니다.ExtJS : 너무 빠른 핸들러의 응답이 실패하는 경우가 있습니다.
나는 같은 핸들러에서 시간 지연을 사용하는 경우 :
System.Threading.Thread.Sleep(1000);
그것은 (50)의 49 시간을 작동하지만 내가 빠르게 웹 사이트를 만들려고 할 때, 내 응답 대기 시간을 설정하는 이상한입니다.
문제에 대한 정보가 충분하지 않으면 도움을 요청하십시오. 여기
내 JS의 샘플입니다 :
storePrefixes.on({
'beforeload': function() {
//...
},
'load': {
fn: function() {
if (storePrefixes.data.items.length > 0)
// ... working with response
else
// here is a problem
},
single: true
}
});
그리고 서버 코드가있다 :
<%@ WebHandler Language="C#" Class="GetPrefixesInRD" %>
using System;
using System.Web;
using BCR.BLL;
public class GetPrefixesInRD : IHttpHandler, System.Web.SessionState.IReadOnlySessionState
{
private readonly PrefixNewBLL prefixeBLL = new PrefixNewBLL();
private readonly Newtonsoft.Json.JsonSerializer serializer = new Newtonsoft.Json.JsonSerializer();
public void ProcessRequest(HttpContext context)
{
var prefixes = prefixeBLL.GetPrefixesByExistPrefixInAccountingDocs(null, 1, false);
prefixes.Sort((x, y) => String.CompareOrdinal(x.Prefix, y.Prefix));
context.Response.ContentType = "application/json";
context.Response.Clear();
context.Response.BufferOutput = true;
serializer.Serialize(context.Response.Output, new { root = prefixes, total = prefixes.Count });
context.Response.Flush();
context.Response.End();
}
public bool IsReusable { get { return false; } }
}
서버 코드가 느려지면 서버 코드에 문제가있는 것입니다. 해당 코드를 표시하면 더 나은 대답을 얻을 수 있습니다. 귀하의 데이터베이스가 뭔가에 대한 잠금 것 같아요. 데이터 액세스 중에 발생하는 예외는 모두 기록합니까? – nunespascal
답변 주셔서 감사합니다. 예외는 없지만 서버 코드에서 예외가 없습니다. 방금 체크했습니다. 또한 더 나은 도움을 위해 내 서버 코드로 내 게시물을 편집했습니다. –
서버가 응답하는 대상은 무엇입니까? 네트워크 탭의 개발자 도구에서 Chrome을 사용하여 JSON 데이터를 살펴보고 요청을 확인할 수 있습니다. Ext가 사용자에게 오류를 주었을 때 또는 클라이언트의 어딘가에 문제가있는 경우 서버 응답이 잘못되었는지를 판단하는 데 최소한 도움이됩니다. – oldwizard