2014-04-08 19 views
2

我正在製作一個網站遊戲,它在每0.25秒運行一次的setInterval內使用多個document.getElementById。這會讓我的網站在一段時間後變慢。我對Javascript很陌生,但我想知道是否有更有效或更高效的方式來調用和更新HTML element或創建一個包含遊戲延遲並且每隔1秒運行一次的有效循環?解決getElementById

+2

的getElementById是選擇一個元素有最有效的方法,因此,如果您遇到問題,服務表現,病因更可能是你自己的代碼比本地實現。 – adeneo

+0

提供給我們一段代碼,會更有幫助,所以找到解決問題的辦法 – n1kkou

+0

http://stackoverflow.com/questions/7322078/jqueryid-val-vs-getelementbyidid-value –

回答

0

預緩存所有ID的。

在東西的(僞碼)行:

var all_objects = []; 
... 
onCreateObject = function(){ 
    all_objects.push(newObject.id) 
} 

,然後只通過all_objects可變迭代。

至於循環本身,也有解決方案在那裏已經:http://www.paulirish.com/2011/requestanimationframe-for-smart-animating/

+0

預購ID的聲音真的很有希望!並感謝鏈接到循環解決方案。我現在將google如何預備我的ID。 – Turbotanten

0

組變量外(上面)的setInterval函數:

var myDiv = document.getElementById("ID"); 

,然後打電話給他們的setInterval函數中:

myDiv.something()