不同平台上的Javascript
我有一个简单的js脚本,可以水平滚动图像 奇怪的是,它在windows上的CPU负载高达100%,而在linux上,同一台计算机上的CPU负载很少达到20% 我已经在firefox、chrome和opera这两个平台上进行了测试,结果几乎相同 有人能解释一下发生了什么事吗不同平台上的Javascript,javascript,windows,linux,Javascript,Windows,Linux,我有一个简单的js脚本,可以水平滚动图像 奇怪的是,它在windows上的CPU负载高达100%,而在linux上,同一台计算机上的CPU负载很少达到20% 我已经在firefox、chrome和opera这两个平台上进行了测试,结果几乎相同 有人能解释一下发生了什么事吗 <script> var scrllTmr; window.onload = function(){ //set style document.getElementById('scroll').s
<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>
var-scrltmr;
window.onload=函数(){
//设置样式
document.getElementById('scroll').style.overflow='hidden';
document.getElementById('scrollme').style.float='left';
document.getElementById('scrollme').style.position='relative';
//获取画布
cw=parseInt(document.getElementById('scroll').offsetWidth);
w=parseInt(document.getElementById('scrollme').offsetWidth);
//开始滚动
lft=-2101;
document.getElementById('scrollme').style.left=lft+“px”;
滚动步进(cw、w、lft);
}
功能滚动步进(cw、w、lft){
//计算并执行步骤
如果(lft==w*-1)
lft=cw+w;
document.getElementById('scrollme').style.left=lft+“px”;
//等待并做下一步。。。
如果(scrllTmr)
清除超时(scrllTmr);
scrllTmr=setTimeout('scrollStep(cw,w,,+(lft-1)+'),10);
}
事实上,任何协同工作的javascript代码都会以这种方式运行
<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>
var-scrltmr;
window.onload=函数(){
//设置样式
document.getElementById('scroll').style.overflow='hidden';
document.getElementById('scrollme').style.float='left';
document.getElementById('scrollme').style.position='relative';
//获取画布
cw=parseInt(document.getElementById('scroll').offsetWidth);
w=parseInt(document.getElementById('scrollme').offsetWidth);
//开始滚动
lft=-2101;
document.getElementById('scrollme').style.left=lft+“px”;
滚动步进(cw、w、lft);
}
功能滚动步进(cw、w、lft){
//计算并执行步骤
如果(lft==w*-1)
lft=cw+w;
document.getElementById('scrollme').style.left=lft+“px”;
//等待并做下一步。。。
如果(scrllTmr)
清除超时(scrllTmr);
scrllTmr=setTimeout('scrollStep(cw,w,,+(lft-1)+'),10);
}
事实上,任何javascript代码都会以这种方式协同工作可能是视频管道中的某个东西。我猜这台机器使用软件渲染,例如Intel 950或3100。视频驱动程序中的差异可能导致这种情况。是的,将第42行从
var foo=bar代码>至var foo=baz代码>。认真地给我们一些代码、链接和/或资源来查看。当你展示一些代码/东西时,我们不读心智=p可以解释。@anddoutoi:+1,但我们中的一些人读心智。我觉得。。。讽刺…英特尔公司移动945GMYou应该编辑您的问题,而不是提供此作为答案。