我正在尝试用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秒后不会刷新它。我的错误在哪里?
答案 0 :(得分:1)
至少在这里工作得很好(从git master运行最近的构建),正在按预期调用getData()。你能在控制台中看到任何错误吗?
编辑:问题是getUrl()为KIO :: get()显式设置NoReload,这导致它从缓存加载数据而不是强制从服务器重新加载。解决方案是向URL添加一个查询参数,以便强制重新加载它。