我有一个奇怪的问题,看起来并不总是,但有时会有相同的请求。 在我的网站(localhost)上,我有一个带自动加载的ExtJS商店,在页面加载(按F5按钮)后,它从服务器的某个处理程序( * .ashx)读取JSON。 Handler从DB获取数据并将其序列化为JSON。它按5次按F5工作4次。第5次json-reader显示成功=假和0长度数据。
如果我在处理程序中使用时间延迟,例如:
System.Threading.Thread.Sleep(1000);
它的工作次数是50次。但是当我尝试使网站更快时,在我的响应中设置延迟是很奇怪的。
如果没有足够的问题信息,请帮助或询问我!
以下是我的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; } }
}
答案 0 :(得分:0)
调试时,我会检查this.isLoading(),看它是否还在尝试加载奇怪的人。将所有内容移动到datachanged事件可能更好。如果需要分析商店,请使用console.dir(Ext.apply({},this));在运行时获取快照。