次の問題があります: コンボボックスに値を設定する Ext.data.JsonStore があります。時々 loadexception が発生します。コンボボックスを何度も更新できますが、遅かれ早かれ例外が発生します。したがって、タイムアウトの問題を確認するために、サーバーに遅延を追加したところ、常に例外が発生するようになりました。コード:
JsonStore:
var ticketStore = new Ext.data.JsonStore({
url:'/Hour/ListTickets',
autodestroy:true,
totalProperty:'records',
idProperty:'Id',
root:'rows',
fields:[{name:'Id'},{name:'Titel'}]
});
ticketStore.on({'loadexception':{fn:storeLoadException,scope:this}});
コンボボックス:
var ticketCombo = new Ext.form.ComboBox(
{
fieldLabel:'Ticket',
hiddenName:'TicketId',
store:ticketStore,
width:300,
valueField:'Id',
minChars:2,
displayField:'Titel',
typeAhead:false,
forceSelection:true,
pageSize:25,
triggerAction:'all',
emptyText:'Selecteer een waarde...',
selectOnFocus:true,
valueNotFoundText:"nitchevo",
value:1567,
allowBlank: false
}
);
データ:
try
{
IList<Dictionary<string, object>> returnValue = new List<Dictionary<string, object>>();
returnValue.Add(new Dictionary<string, object>{ {"Id", 1}, {"Titel", "IkBenTitel"}});
System.Threading.Thread.Sleep(7500);
return returnValue;
}
catch (Exception e)
{
Console.WriteLine(e);
}
データから Json への変換
public static JsonResult JSon(this IList<Dictionary<string, object>> list)
{
var jsonData = new
{
records = list.Count,
rows = list.ToArray()
};
JsonResult json = JsonHelper.Json(jsonData);
return json;
}
Fiddler による Json データ
{"records":1,"rows":[{"Id":1,"Titel":"IkBenTitel"}]}
7.5 秒の遅延により、データがクライアントに到着するはずのときにクライアント側で例外が発生します。遅延がなければ、ランダムに例外が発生します。例外にはJsonデータが表示されますが、表示される唯一の説明は「構文エラー」であり、役に立ちません。
フォームとストア/コンボボックスを除くすべてのページを削除しましたが、それでも発生します。ご覧のとおり、モック データを提供しているため、データベースにはアクセスすることさえできません。それは私を夢中にさせています!
助けていただければ本当にありがたいです。私はこれに 3 日間ほど取り組んでいます。記録のために、私は Internet Explorer バージョン 8.0.7600.16385 を使用していますが、Chromium でも発生します。
更新 Firefox ではバグが表示されないため、コンソールを使用できません。
例外
制限からのいくつかのパラメーター: 25
クエリ: ""
start: 0
reader.ef.length: 2
jsonData.rows[0].Id: 1
jsonData.rows[0].Titel: "IkBentitel"
reader.meta.fields [0].name: "Id"
reader.meta.fields[1].name: "Titel"
reader.meta.idProperty: "Id"
reader.meta.totalProperty: "records"
reader.meta.url "/Hour/リストチケット」
さらに必要な場合はお知らせください。また、例外ハンドラに 'args' を追加しましたが、ステータスは 200 です。