簡體   English   中英

如何改進我的網站IE6 / 7 JS性能?

[英]How can I improve my sites IE6/7 JS performance?

所以我最近參與了一個網站重寫,我們已經實現了以前各方面的重大改進(不是不完美,我們按截止日期生活,並且總是在改進:D),但有一個例外:在IE6中/ 7它會在頁面顯示后鎖定。 我知道它是JS,因為它禁用它很快,我知道一些像我們使用的simplegallery插件非常慢,但即使這樣,谷歌廣告刪除它仍然在爬行(+ 8秒)。 我查看了Firebug探查器並進行了大量的JS / CSS更改,例如:

  • 將除我們的img錯誤處理之外的所有JS移動到頁面底部
  • 改進所有jQuery選擇器指定最佳性能
  • 轉到jQuery 1.4
  • 通過JS Lint運行我們的核心自定義JS(main.js)
  • Spriting常用圖像
  • 降低CSS選擇器的復雜性

這樣做對所有瀏覽器都有好處,我知道我可以做得更多,但我沒有看到我需要的IE6 / 7的重大改進。 我們確實將DD_roundies_0.0.2a.js用於IE7,但不用於IE6。 我嘗試了DynaTrace,但看不到任何明顯的東西,雖然我確實在它的深度有點迷失。

示例列表頁面

示例搜索頁面

任何人都可以看到我可能在這里缺少和/或指向一些好的IE分析工具?

編輯:我應該提到我已經通過YSlow,PageSpeed和Chrome的開發者工具。 以上所有這些都是我上面提到的大部分改進的基礎。 在這一點上,我並不是說這個網站是完全光學化的,但它沒關系,正朝着正確的方向前進。 但是我在IE6 / 7中遇到了一個問題,我相信它是JS的執行。

編輯2:我們已經從服務器發送了IE6的Chrome Frame元標記。 這不是一個解決方案,但我認為它比IE6更有益處。 我現在正在追蹤JS特定的反饋,因為我認為我已經涵蓋了所有其他基礎。

你在http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.js中包含了jquery,如果你在你的網站上托管它會更快下載。

另外,請查看Firebug的YSlow插件,它為您提供了大量有關如何改善網站加載時間的信息。

您可以在IE6中手動配置“common.js”腳本。 只需在戰略位置獲取新的時間戳,並在最后提醒他們。

例如

function ts() { return (new Date).getTime(); }
var t0 = ts();
// some of your code
var t1 = ts();
// rest of your code
var t2 = t();
alert(t1-t0); // milliseconds between t0 and t1
alert(t2-t0); // ms between t0 and t2

也許腳本的一部分比其他部分慢得多。
或許它只是IE6。

如果你想強迫用戶安裝谷歌Chrome瀏覽器框架,它將使IE使用chrome渲染器和javascript引擎

http://code.google.com/chrome/chromeframe/

目前只有可疑的東西是“omniture.js”。

這是我發現的關於omn​​iture.js和IE6的博客文章。

您可以在Chrome上使用SpeedTracer來調試速度問題。 當然js速度將根據V8發動機。

javascript本身通常不是問題,當你修改最終遇到麻煩的DOM時,例如動畫,添加和刪除元素。 不透明度要格外小心。

看看LABjs和RequireJS:加載JavaScript資源的有趣方式 ,討論如何並行加載腳本。

在最新一代瀏覽器之前,標簽具有一些非常不利的性能特征。 也就是說,標簽“阻止”,意味着它們會停止加載/發生在頁面上的所有其他內容,同時加載和執行時。 它們不僅會停止頁面的所有其他部分,甚至還會停止加載任何其他標記。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM