Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript KDE等离子体体自折射_Javascript_Kde_Plasmoid - Fatal编程技术网

Javascript KDE等离子体体自折射

Javascript KDE等离子体体自折射,javascript,kde,plasmoid,Javascript,Kde,Plasmoid,我试图用JavaScript编写KDE4 plasmoid,但没有成功。 所以,我需要通过HTTP获取一些数据,并将其显示在标签中。这工作得很好,但我需要定期刷新(10秒钟一次),它不工作 我的代码: inLabel = new Label(); var timer= new QTimer(); var job=0; var fileContent=""; function onData(job, data){ if(data.length > 0){ var cont

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

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


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

控制台中没有任何错误。我已经运行了嗅探器并查看了流量,没有看到周期性的请求,只有一个在plasmoid启动时。您正在运行哪个KDE版本?使用plasmoidviewer启动还是将其添加到Plasma?我刚刚在KDE 4.6.5上测试了这个脚本(使用plasmoidviewer),它似乎也在那里工作。您还可以尝试向回调中添加print()或debug()调用,以查看它们是否是从Kubuntu调用的.KDE 4.8.3。我在getData()函数中添加了
print(“getData”)
,现在进入控制台:$plasmoidviewer plasma\u test getData getData getData getData getData getData,但在嗅探器中我看不到请求。啊,我现在看到了。问题是它在后台使用KIO::get()和NoReload,这基本上导致它使用缓存而不是重新加载页面。尝试将查询参数附加到url,以查看这是否有帮助。忘了补充一点,您可能还想看看,因为从4.7开始,它们是创建脚本小程序的首选方法。虽然这对解决这个问题没有帮助,但还是值得注意的。