不同平台上的Javascript

时间:2010-03-04 13:59:11

标签: javascript windows linux

我有一个简单的js脚本可以滚动图像。

奇怪的是,它在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代码都是那样的

2 个答案:

答案 0 :(得分:1)

可能是视频管道中的内容。我猜这台机器会使用软件渲染,例如英特尔950或3100.视频驱动程序的差异可能会导致这种情况。

答案 1 :(得分: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> 

事实上,任何执行某些事情的javascript代码都是那样的