2010-03-04 49 views
0

我有一個簡單的js腳本來滾動圖像的水平。不同平臺上的Javascript

奇怪的是,它在windows上加載CPU高達100%,而在linux上,CPU負載在同一臺計算機上很少達到20%。

我已經在兩種平臺上的firefox,chrome和opera上測試過了 - 結果幾乎相同。

有人可以解釋發生了什麼?

<script> 
var scrllTmr; 
window.onload = function(){ 
    //set style 
    document.getElementById('scroll').style.overflow = 'hidden'; 
    document.getElementById('scrollme').style.float = 'left'; 
    document.getElementById('scrollme').style.position = 'relative'; 

    //get canvas 
    cw = parseInt(document.getElementById('scroll').offsetWidth); 
    w = parseInt(document.getElementById('scrollme').offsetWidth); 

    //start scroll 
    lft = -2101; 
    document.getElementById('scrollme').style.left = lft + "px"; 
    scrollStep(cw,w,lft); 
} 
function scrollStep(cw,w,lft){ 
    //calc and do step 
    if(lft == w * -1) 
     lft = cw + w; 
    document.getElementById('scrollme').style.left = lft + "px"; 

    //wait and do next... 
    if(scrllTmr) 
     clearTimeout(scrllTmr); 
    scrllTmr = setTimeout('scrollStep(cw,w,' + (lft - 1) + ')',10); 
} 
</script> 

事實上,任何JavaScript代碼做一些事情cotiniously行爲這樣

+4

是啊,將行42從'var foo = bar;'換成'var foo = baz;'。真的嗎?給我們一些代碼,鏈接和/或資源來看看。我們不讀頭腦= P – anddoutoi 2010-03-04 14:04:38

+0

可以解釋如果你顯示一些代碼/東西。 – 2010-03-04 14:04:53

+1

@anddoutoi:+1,但是我們中的一些人*讀*頭腦。我感到......諷刺...... – Robusto 2010-03-04 14:10:10

回答

0
<script> 
var scrllTmr; 
window.onload = function(){ 
    //set style 
    document.getElementById('scroll').style.overflow = 'hidden'; 
    document.getElementById('scrollme').style.float = 'left'; 
    document.getElementById('scrollme').style.position = 'relative'; 

    //get canvas 
    cw = parseInt(document.getElementById('scroll').offsetWidth); 
    w = parseInt(document.getElementById('scrollme').offsetWidth); 

    //start scroll 
    lft = -2101; 
    document.getElementById('scrollme').style.left = lft + "px"; 
    scrollStep(cw,w,lft); 
} 
function scrollStep(cw,w,lft){ 
    //calc and do step 
    if(lft == w * -1) 
     lft = cw + w; 
    document.getElementById('scrollme').style.left = lft + "px"; 

    //wait and do next... 
    if(scrllTmr) 
     clearTimeout(scrllTmr); 
    scrllTmr = setTimeout('scrollStep(cw,w,' + (lft - 1) + ')',10); 
} 
</script> 

其實裏面做一些事情cotiniously行爲這種方式在視頻管線

+0

你應該編輯你的問題,而不是提供這個答案。 – 2010-03-04 14:17:42

+0

赦免,第一次在這裏... – Vetal 2010-03-04 14:18:53

1

可能是一些任何JavaScript代碼。我猜測這臺機器使用軟件渲染,例如英特爾950或3100.視頻驅動程序的差異可能會導致此問題。

+0

英特爾公司移動945GM – Vetal 2010-03-04 14:16:12