下一代YSlow的供電由銳
7月18日,2011馬塞爾·杜蘭在下午09:17 | 發展 , 性能 | 4評論幾個星期前,雅虎宣布2011年在速度 YSlow的移動 ,使移動世界YSlow的性能分析的力量。
YSlow的手機作為作品的bookmarklet ,從而有可能比其他瀏覽器火狐(附加)或鉻(擴展)運行。
YSlow的建築部分被重新設計,以跨平台和YUI在沙盒,跨瀏覽器的抽象和簡單的YQL的訪問可能是重要因素。
沙箱
為了不干擾,不搞亂頁面本身的性能分析和嵌入在頁面上,YSlow的是一個bookmarklet,JavaScript和CSS注入任何網頁,利用YUI的沙箱電源:
書籤網址:
JavaScript的:(函數(Y,P,O){P = y.body.appendChild(y.createElement(“IFRAME”)); p.id ='YSlow的書籤“; p.style.cssText ='顯示:無“;Ø。= p.contentWindow.document; o.open()寫(”<HEAD> <身體的onload =“YUI_config = {贏:window.parent,DOC:window.parent.document}; D =文件; d.getElementsByTagName(\'頭\')[0]。appendChild(d.createElement(\'腳本\'))。SRC = \'http://d.yimg.com/jc/yslow-bookmarklet.js \ “>'); o.close()}(文件)) 上面的代碼:
- 創建一個空的iframe;
- 追加到頁面的主體;
- 隱藏的iframe *;
- 得到它的窗口句柄;
- 其內容寫入到iframe的主體;
- 這個機構是空的,但有一個
onload事件 -
onloadonload事件定義如何注入YSlow的的JS:- 設置
YUI_config,所以windoc點被分析的頁面window和document分別 - YSlow的網址,通過創建一個動態注入
script到iframe的元素head
- 設置
* iframe的顯示YSlow的演示的全部資產裝入
這將被分析的頁面放入一個iframe。 這個iframe將作為沙盒環境,將駐留在YSlow的。 由於沒有動態創建的iframe src屬性,將有機會獲得其母公司(被分析的頁面),因為這裡沒有發生有相同的原產地政策違反。
的YUI_config對象是很方便的,因為它設置win doc doc iframe的父(被分析的頁面),因此任何新的YUI實例將綁定默認情況下,佈線的父文檔任何呼叫到Y.all和Y.one通過Y.config.win或Y.config.doc從YUI use回調。
YSlow會的演示文稿處理iframe的window和document引用,讓YSlow的主腳本呈現的標記,以及不與父頁面的樣式發生衝突的情況下獲取這個iframe內外部CSS。 YSlow的父頁面進行掃描,以獲得後來的表現分析所需的所有組件(圖片,腳本,鏈接,背景圖片,閃光燈等)。 這是做通過,訪問Y.config.win和Y.config.doc ,因為他們是指父頁面。
跨瀏覽器抽象
YSlow的移動應該是一個書籤,在任何瀏覽器*工作。 YUI的抽象跨瀏覽器,瀏覽器的差異正常化問題,導致在一個乾淨,易於閱讀和維護代碼庫。
YSlow的不完全移植了YUI 3 -控制器層(從即將推出的應用程序組件) -但仍,所有的DOM操縱和事件處理由node和event模塊。 我們計劃在未來的版本了YUI 3到港口的YSlow的功能。
*並非所有瀏覽器目前支持
YQL的
YSlow分析,通過檢查發現在頁面上的組件的HTTP標頭頁。 HTTP響應頭是不是可以在頁面中,因此這些部件需要再次請求為YSlow的順序得到響應頭信息。 這可以通過XMLHttpRequest請求(AJAX)的組件的URL列表,但不幸的是由於同一原產地政策的限制 ,這是不可能的,除非所有組件在同一個域的頁面,這是不太可能實現。
一脈相承的政策限制的一個共同的解決方法是使用JSONP請求組件的URL列表和代理代表對YSlow的檢索HTTP響應頭,其中一個外部服務器。 由於YSlow的普及和最近的移動性能分析工作,我們期待著相當沉重的交通YSlow的移動書籤。 為了支持這樣的交通, YQL的是可伸縮的解決方案,通過一個開放的數據表命名data.headers ,檢索的響應頭和內容,為給定的URL列表,而假冒的用戶代理,以確保預期的內容是通過YSlow的檢索。
YQL的查詢組件所有YQL的查詢,而引擎蓋下的管理JSONP請求,YSlow的控制器代碼更簡單,易於維護管理工作。
未來的增強功能:新YSlow的移動界面友好
目前YSlow的移動用戶體驗是相同的桌面體驗。 一長串的性能分析數據的處理是不小智能手機屏幕上的最佳體驗。 自銳也抽象跨設備的手勢 ,YSlow的移動將獲得一個全新的移動友好的界面,在未來的版本。
性能工具的性能
YSlow的移動部署了仔細考慮其在被分析的頁面加載時間性能的影響。 YSlow的使用YUI的3模塊進行審議只包括需要加載盡可能快的YSlow的模塊。 YUI種子文件和裝載機,不包括在內,因為所有必要的模塊和子模塊組合在一起後, 瑞安Grove的性能禪宗的技巧,這使得它可以加載到一個單一的小單要求的一切:YSlow的bookmarklet.js:204KB,66KB( GZIP),其中:
- 銳:75KB,27KB(GZIP)
- YSlow的:129KB,39KB(GZIP)
更多關於YSlow的
跟上YSlow的最新公佈的最新:
- 重新設計的YSlow的頁面getyslow.com訪問
- 喜歡的YSlow的Facebook上: facebook.com / getyslow
- 繼YSlow會在Twitter: twitter.com / getyslow
共享和擴展: 書籤del.icio.us Digg它! | reddit!


可以肯定現在使用手機的樣式
胡安 - 7月19日,2011年#
好消息馬塞爾。 保持良好的工作!
愛德華多· 蘭格倫- 7月21日,2011年#
[...]下一代YSlow的供電由銳[...]
pingback的加快您的網站«尚達拉的最佳實踐 - 2011年7月25日, #
我不是一個開發商,但很感興趣,在應用程序的性能,奧雅納的廣域網和互聯網。 我首次嘗試,它為我工作的偉大。 感謝將努力在...
評論由克里夫查普曼 - 7月27日,2011年#