Javascript на разных платформах - PullRequest
0 голосов
/ 04 марта 2010

У меня есть простой js-скрипт, который прокручивает изображение по горизонтали.

Странно то, что он загружает процессор до 100% в Windows, в то время как в Linux загрузка процессора редко достигает 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, который делает что-то вежливое, ведет себя таким образом

Ответы [ 2 ]

1 голос
/ 04 марта 2010

Возможно, что-то в видео конвейере. Я собираюсь предположить, что эта машина использует программное обеспечение рендеринга, например, Intel 950 или 3100. Это может быть связано с различиями в драйвере видео.

0 голосов
/ 04 марта 2010
<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, который делает что-то вежливое, ведет себя таким образом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...