2011-01-05 146 views
1
<script> 
    function mySlide() 
    { 
     var myFx = new Fx.Slide('my-slide', { 
      duration: 1000, 
      transition: Fx.Transitions.Pow.easeOut 
     }); 

     //Toggles between slideIn and slideOut twice: 
     myFx.toggle().chain(myFx.toggle); 

    } 

    var interval = null; 

    function clearTime() 
    { 
     $clear(interval); 
    } 

    function play() 
    { 
     interval = mySlide.periodical(1000); 
    } 
</script> 
<div onclick="clearTime();"> stop </div> 
<div onclick="play();"> play </div> 
<img id="my-slide" src="http://lh5.ggpht.com/_8Nsej4QeRGg/TE5m5zRf4bI/AAAAAAAAAgo/pQGKPX8zn9c/gadget-01.jpg"/> 

當我試圖用Safari瀏覽器上面的代碼,在Windows任務管理器顯示的30%-50%javascript - 如何提高性能?

CPU利用率當我把上面的代碼與其它的HTML代碼一整頁,利用率60%-70%

那麼有什麼不同呢?爲什麼js在一個明確的頁面上更快?

+1

你的表現相對比例是? – jball 2011-01-05 03:55:10

+0

在其他瀏覽器中如何? – Chandu 2011-01-05 03:59:21

+0

@jball:不相對於。我在電腦上試了一次,但瀏覽器卻不一樣(清除頁面和html頁面) - > diffimantly perfomance – Chameron 2011-01-05 04:17:10

回答

2

因爲您的腳本會影響頁面。我認爲它會在頁面上添加一些內容,然後對其進行動畫處理。這需要瀏覽器:

  • 搜索頁面上的元素插入您的新元素(S)(稱爲DOM遍歷的位置 - 因爲你使用的是ID沒有這麼多的問題,而不是複雜的選擇)
  • 計算和重新渲染的元素,會推來推去的頁面(稱爲迴流 - 這是最昂貴的)

因此,在一般情況下,你的頁面上的多個元素,以及更多的CSS規則,DOM穿越和迴流需要的時間越長。

更多回流:

+0

是的,我認爲是的。但是我想要這個porblem的一些文件,我必須報告它。你能告訴我研究的來源嗎? – Chameron 2011-01-05 04:21:44

+0

@Chameron,添加了一個鏈接到我的答案。 – 2011-01-05 04:28:44

+0

感謝您的建議 – Chameron 2011-01-05 04:58:13