我想知道是否有任何以下技術添加任何性能自動:縮小和優化js代碼的技巧,他們真的在工作嗎?
!!變量 - 我看到這個jQuery和它的插件 - 投爲bool
空==變量 - 這可以是有用的,如果你錯過了第二個等於。但有人聲稱擁有這是因爲gzip的優化
縮小和變量的收縮 - 這個我感興趣約IE瀏覽器,它可以從變量的萎縮受益
哪是真的,哪些是無用的?
我想知道是否有任何以下技術添加任何性能自動:縮小和優化js代碼的技巧,他們真的在工作嗎?
!!變量 - 我看到這個jQuery和它的插件 - 投爲bool
空==變量 - 這可以是有用的,如果你錯過了第二個等於。但有人聲稱擁有這是因爲gzip的優化
縮小和變量的收縮 - 這個我感興趣約IE瀏覽器,它可以從變量的萎縮受益
哪是真的,哪些是無用的?
是的,如果你不想自己動手做小型文件,而是使用像極好的Google's Closure Compiler這樣的縮小器,小型化就可以製作出更小的文件。
關於執行性能,增益並不明顯,它甚至可能會略微消極,這取決於它是如何完成的。但這不是目標:目標是節省帶寬。
沒有理由自己寫一個縮小器,除非你對此足夠自信,以至於你可以做得更好,證明已經證明了這一點。這不是一件容易的事。
現在,看看你的第一個特定技巧(兩個第一個命題),它們幾乎沒有用於縮小。
請注意,JS minification是獨立於JS引擎,這裏沒有具體的IE問題。
縮小作品。主要目標是使生成的JS文件更小,以便頁面在加載jS資源時不會佔用過多的帶寬。谷歌的Closure編譯器等縮小器可以進一步執行諸如死代碼消除之類的任務,從而可以進一步縮減代碼。
UPDATE
你的前兩個例子並不真正適用於微小和性能,節約是可以忽略不計。正如我之前提到的,Google的Closure編譯器將執行死代碼消除。但它也可以做的是執行函數和不斷內聯,這可能會爲您提供一些性能方面的好處,但據我所知,即使是最積極的優化也不會做太多的工作。也就是說,我不知道任何將您的代碼轉換爲更高性能代碼的縮減器。我不知道IE會從中受益多少,但我會說,因爲代碼並沒有被積極地轉化爲更高性能的代碼,所以不會有太多的效果。也許變量的縮小意味着瀏覽器內的符號表中佔用的內存會減少,但我認爲這並不會給你帶來太多的收益。
我知道帶寬節省,但他們不是我所關心的。大部分頁面都用於本地網絡。但問題在於客戶真的很胖,有時IE真的很慢。你能說第一個和最後一個點? – shagon 2013-04-04 16:28:49
縮小並不會影響性能。這只是爲了節省帶寬。 – freakish 2013-04-04 16:25:00
@freakish變量的縮小情況如何?這可以做到兩個? – shagon 2013-04-04 16:30:28
收縮變量不會給你任何性能提升。如果你需要性能,那麼你必須重構你的JS代碼。它不會神奇地變得高效。 IE或任何其他瀏覽器都不能從小型化中受益。 – freakish 2013-04-04 22:00:42