Плазмоид KDE ind autorefresh
Я пытаюсь написать плазмоид KDE4 на JavaScript, но безуспешно. Итак, мне нужно получить некоторые данные через HTTP и отобразить их в метке. Это работает хорошо, но мне нужно регулярное обновление (раз в 10 секунд), это не работает.
Мой код:
inLabel = new Label();
var timer= new QTimer();
var job=0;
var fileContent="";
function onData(job, data){
if(data.length > 0){
var content = new String(data.valueOf());
fileContent += content;
}
}
function onFinished(job) {
inLabel.text=fileContent;
}
plasmoid.sizeChanged=function()
{
plasmoid.update();
}
timer.timeout.connect(getData);
timer.singleShot=false;
getData();
timer.start(10000);
function getData()
{
fileContent="";
job = plasmoid.getUrl("http://192.168.0.10/script.cgi");
job.data.connect(onData);
job.finished.connect(onFinished);
plasmoid.update();
}
Он получает скрипт один раз и не обновляет его через 10 секунд. Где моя ошибка?
1 ответ
Решение
По крайней мере, здесь все работает нормально (выполняется последняя сборка из git master), getData() вызывается, как и ожидалось. Вы видите какие-либо ошибки в консоли?
РЕДАКТИРОВАТЬ: Проблема была в том, что getUrl() явно устанавливает NoReload для KIO::get(), что вызывает загрузку данных из кэша вместо принудительной перезагрузки с сервера. Решением было добавить параметр запроса в URL, чтобы заставить его перезагрузить его.