2015-11-02 59 views
0

下面的代码按照我希望的方式工作,但是如果我查看开发人员控制台,我会看到,每次运行它时都会追加一个新脚本(我知道它最后一行appendChild显而易见)。JSONP,有没有副作用?

但是,我的问题是,这会影响任何消极的东西,比如性能,最后我会考虑以大概30秒或更少的间隔运行。那肯定会开始向document.body添加大量脚本?

如果这会造成副作用,我应该如何解决它?

没有JQUERY ...我也试图保持简单。

window.myJsonpCallback = function(data) { 
     AppDispatcher.handleNewAction({ 
      actionType:AppConstants.PULL_DATA, 
      item: data 
     }) 
}; 

var scriptEl = document.createElement('script'); 
scriptEl.setAttribute('src', 
    'http://api.xxxx.us/api/stops/near/37.0641593/-76.4929986/?callback=myJsonpCallback'); 
document.body.appendChild(scriptEl); 

'

会不会有什么副作用,如果我离开的是什么?

+0

是否需要更新数据?或者你想让旧数据也可用? –

+0

只是更新...不再需要旧数据 – mc805

回答

1

您可以在每次加载时删除旧脚本。

body.removeChild(document.getElementById("jsonp")) 
var scriptEl = document.createElement('script'); 
scriptEl.id = "jsonp"; 
scriptEl.setAttribute('src', 
'http://api.xxxx.us/api/stops/near/37.0641593/-76.4929986/?callback=myJsonpCallback'); 
document.body.appendChild(scriptEl); 
+0

如果您同时有两个JSONP请求正在运行,那么在第二个请求触发并中断之前,这将删除第一个请求的处理程序。 – Quentin