Плазмоид 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, чтобы заставить его перезагрузить его.

Другие вопросы по тегам