2013-04-09 39 views
2

我在做什么错误的插件建设者? ,它没有显示新的请求响应时,它表现出相同的响应所有的时间,这是我给main.js代码:firefox addon main.js显示相同的请求响应,而不是更新

var tmr = require('timer'); 
var timus=5000; 
    var Request = require("sdk/request").Request; 

    function timer_restarting(){ 

    gint = tmr.setInterval(function() { 



Request({ 
    url: "http://mysite.com/data.txt", 
    onComplete: function (response) { 

    if(response.text.indexOf('<show>true</show>')>-1){ 
     timus = parseInt(response.text.substring(response.text.indexOf('<interval>')+10,response.text.indexOf('</interval>'))); 
     show(response.text.substring(response.text.indexOf('<message>')+9,response.text.indexOf('</message>'))); 
     tmr.clearInterval(gint); 
     timer_restarting(); 
    } 
    } 
}).get(); 


    }, timus); 
} 

timer_restarting(); 

该附加显示每5秒相同的消息,所以不更新。我有一个印象,就是它没有对服务器做新的请求。我改变了讯息,但仍显示旧讯息。有什么问题?

UPDATE:

如果我将手动去到浏览器链接并刷新它,然后插件将刷新输入反应也是如此。为什么会发生?

回答

2

尝试添加header为“Cache-control”你Request实例,并指定“no-cache”(或“max-age”值)的值,以避免得到一个缓存的响应。

E.g.在你的榜样,行

url: "http://mysite.com/data.txt", 
    onComplete: function (response) { /* ... */ } 

之间插入如下几行:

url: "http://mysite.com/data.txt", 
    headers: { 
    'Cache-control': 'no-cache' 
    }, 
    onComplete: function (response) { /* ... */ } 
+0

我是新来的插件建设者SDK,请告诉我一个代码,如果你有。谢谢 – Jigberto 2013-04-09 15:38:50

+0

@Jigberto:查看更新的答案。 – Martijn 2013-04-09 15:43:16