KDE plasmoid ind autorefresh

时间:2012-05-30 10:37:24

标签: javascript kde plasmoid

我正在尝试用JavaScript编写KDE4等离子体,但没有成功。 所以,我需要通过HTTP获取一些数据并将其显示在Label中。这个效果很好,但是我需要定期刷新(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 个答案:

答案 0 :(得分:1)

至少在这里工作得很好(从git master运行最近的构建),正在按预期调用getData()。你能在控制台中看到任何错误吗?

编辑:问题是getUrl()为KIO :: get()显式设置NoReload,这导致它从缓存加载数据而不是强制从服务器重新加载。解决方案是向URL添加一个查询参数,以便强制重新加载它。