Я пытаюсь отобразить некоторые данные с помощью Highcharts в окне EXTJS 3. С фиксированным массивом данных все работает, но мне нужно отображать данные, взятые из cgi python, который возвращает json. Это как питон CGI создает мои данные (кусочек, я пропустил подключение к БД и так далее):ExtJS 3 и Highcharts, проблема JsonStore при загрузке данных
query = "select timestamp, value from "+measure_table+" where id_resource = 280 and timestamp < '2011-07-13 03:59:00'"
#execute the query
cur.execute(query)
rows = cur.fetchall()
#create the empty json data rpeository to be filled in
json_root = { 'fields': ['timestamp', 'value'], 'data':[] }
for row in rows:
json_root['data'].append({'timestamp':str(row[0]), 'value':row[1]})
#spit out the json and we are done!
req.write(str(json_root))
И это JS, в котором я пытаюсь загрузить эти данные:
var jproxy = new Ext.data.HttpProxy({
url: 'the url where to find the cgi'
});
var jstore = new Ext.data.Store({
proxy: jproxy,
reader: new Ext.data.JsonReader({
idProperty: 'timestamp',
root: 'data',
fields: [
{name: 'timestamp', mapping: 'timestamp'},
{name: 'value', mapping: 'value'},
]
})
});
Затем я создаю окно и диаграмму. 2 вопроса сейчас: первый довольно прост: что случилось с этим кодом? поджигатель консоль говорит:
о неопределен
если (o.metaData) {
в строке 26042 из доб-все-debug.js, один из отладки скриптов я включен в мой заголовок html. Окно уже создано, но, конечно, в нем нет диаграммы. Какая ошибка это? если я комментирую большой/* .... */создание прокси-сервера и хранилища, ошибка исчезает, поэтому проблема должна быть там. EDIT: я исправил эту проблему, я загрузил магазин с неправильной функцией. Я использовал jstore.loadData() вместо jstore.load(), моя ошибка..sorry
Второй вопрос: : это (следующий код) правильный способ для отображения данных с помощью высоких диаграмм из jsonstore? (мы находимся в создании диаграммы, я не отправляю весь код, потому что работает и, вероятно, это не полезно, чтобы разместить его)
xField: 'timestamp',
store: jstore,
series: [{
yField: 'value'
}]
}
Большое большое спасибо за любой ответ!
EDIT: новая проблема после того, как я установил загрузку данных:
too much recursion
jqextend(),DanaI...xtjs.js (riga 81)
merge(),DanaI...xtjs.js (riga 92)
Chart(),DanaI....src.js (riga 3922)
options = Object { chart={...}, title={...}, altri elementi...}
callback = undefined
draw(),DanaI...hart.js (riga 229)
call(),DanaI...ebug.js (riga 1547)
, copy);
Это поджигатель консоль output..too много рекурсии? какая рекурсия? Я не использую какую-либо рекурсивную функцию в своем коде.
json, заданный python cgi, является правильным, я использую его в другом приложении (сетке), и все работает правильно. (Я также использую тот же прокси и хранилище, поэтому я не могу понять, в чем проблема. .) – powder
Вы должны использовать json/simplejson в любом случае, так как '' dict .__ str__'' в очень простых случаях приведет к недопустимому JSON (например, если значение None). Не имею понятия о проблеме с highcharts, я загружал только данные, используя javascript-литералы. – codeape
Хорошо, спасибо, в любом случае, я прочитаю некоторые документы о json сейчас – powder