0

我正在尝试用 JavaScript 编写 KDE4 plasmoid,但没有成功。因此,我需要通过 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 秒后不刷新它。我的错误在哪里?

4

1 回答 1

1

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

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

于 2012-05-30T11:51:31.373 回答