2015-11-02 77 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