成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

提升Web應用程序性能的最佳實踐

開發(fā) 前端
本文節(jié)選自IBM developerWorks 提升Web應用程序的性能的系列文章,該文通過Web應用程序性能的最佳實踐案例,幫助開發(fā)者更好地理解影響Web應用程序性能的因素,學習如何診斷Web應用程序中的性能問題,找到客戶端內容中的瓶頸,并確定解決方案。

作為開發(fā)人員,Web頁面加載或刷新的速度對其網站至關重要。在瀏覽器中調整性能問題比在Java應用程序中更難。開發(fā)人員在各種瀏覽器中調試JavaScript的方法要少得多。比如,在Mozilla Firefox中,可以使用Firebug調試JavaScript,但仍然不能調整很多性能問題,如瀏覽器呈現消耗時間。為了解決這些問題,有必要開發(fā)瀏覽器插件來監(jiān)控時間響應,以及確定其他對應解決方案如部分呈現或延時加載。

51CTO推薦專題:高性能WEB開發(fā)應用指南

本文節(jié)選自IBM developerWorks 提升Web應用程序的性能的系列文章,該文通過Web應用程序性能的***實踐案例,幫助開發(fā)者更好地理解影響Web應用程序性能的因素,學習如何診斷Web應用程序中的性能問題,找到客戶端內容中的瓶頸,并確定解決方案。

一、提升Web應用程序性能的6種基本方式

1.減少HTTP請求數

每個HTTP請求都有開銷,包括查找DNS、創(chuàng)建連接及等待響應,因此削減不必要的請求數可減少不必要的開銷。要減少請求數:

◆ 合并文件。將總是同時使用的腳本合并到同一個文件中,不會減小總大小,但將會減少請求數。還可以同樣方法合并CSS文件和圖片??梢詫崿F文件自動合并:

◆ 在構建階段。用標記,通過運行Ant合并文件。

◆ 在運行時階段。啟用mod_concat模塊。如果httpServer是Apache,用pack:Tag作為JSP標簽庫來合并JavaScript和樣式表文件。(pack:Tag是一個JSP-Taglib,可縮減、壓縮及合并資源,如JavaScript和CSS,并將它們在內容或普通文件中緩存。)

◆ 使用CSS Sprites。將背景圖片合并成一個圖片,并使用CSS background-image和background-position屬性來顯示所需圖片部分。還可使用內聯(lián)圖片減少請求數。

2.后置加載組件

只呈現需要的組件;其余可等待。***不要一次呈現太多組件。

某些情況下,可使用后置加載。由于瀏覽器可視區(qū)域外的組件可以后置加載,當這些組建進入可視區(qū)域不久后,初始呈現就會失效。

有些JavaScript可以在onload事件后后置加載,如JavaScript中初始呈現后拖動某個元素。

3.前置加載組件

通過前置加載組件,可以利用瀏覽器的空閑時間請求將來會用到的組件(如圖像、樣式和腳本)。當用戶訪問下個頁面時,如果大多數組件都已在緩存中加載,那頁面加載會快得多。

有兩種前置加載:

無條件:一旦觸發(fā)onload,就取得一些額外組件。

有條件:根據用戶的動作,推測用戶下一步的方向并進行相應的前置加載。

4.將腳本放在底部

腳本可能會產生問題,因為它們可能會阻礙并行下載。當下載腳本時,瀏覽器不會再啟動其他下載,即使那些位于不同主機。將腳本,如樣式表,放在底部,以保證它們在其他下載完成后再下載。

也可以使用延時腳本,這只有Internet Explorer支持。DEFER屬性表示腳本不含document.write()。這就告訴瀏覽器他們可以持續(xù)呈現。

5.使用無cookie域組件

當瀏覽器發(fā)出對靜態(tài)圖片的請求,并隨之發(fā)送cookie時,服務器不會使用那些cookie。由于這些cookie只會造成不必要的網絡流量,確保用無請求來請求靜態(tài)組件。然后使用子域和主機保存這些靜態(tài)組件。

6.將JavaScript和CSS放在外部

現實世界中使用外部文件通常會使頁面運行更快,因為JavaScript和CSS文件被瀏覽器緩存。HTML文檔內的JavaScript和CSS會在每次請求HTML文檔時被下載。這減少了需要請求的HTTP的數量,但增加了HTML文檔的大小。另一方面,如果JavaScript和CSS在被瀏覽器緩存的外部文件中,就會減小HTML文檔大小,而不會增加請求數。

二、改進RIA小部件性能方法

主流RIA Ajax框架,如ExtJS、YUI、Dojo及其他,都提供一些精巧的小部件庫,以增強用戶體驗。與其他框架相比,Dojo在企業(yè)開發(fā)領域更強大,這是由于:

◆ Object-oriented programming(OOP)編碼

◆ 跨平臺

◆ 本地數據存儲的Dojo離線API支持

◆ DataGrid、2D和3D圖形(圖表組件提供了在瀏覽器展示報表更簡單的方法)

Dojo在很多網站廣泛使用。這里將使用Dojo舉例,分析RIA小部件的性能??筛鶕唧w情況使用Dojo小部件調整工具,有Page Speed、Rock Star Optimizer及Jiffy。強烈建議使用YSlow和Firebug。

YSlow

YSlow根據一組高性能Web頁面準則,通過檢查頁面上所有組件,包括由JavaScript創(chuàng)建的,來分析Web頁面性能。YSlow是一個集成了Firebug Web開發(fā)工具的Firefox插件;它可提供提升頁面性能的建議、總結組件性能、顯示頁面統(tǒng)計數據并提供用于性能分析的工具。

圖中顯示的是YSlow Grade選項卡上的信息。

 

YSlow Grade 面板是 Firefox 插件的一部分

 

YSlow的Web頁面建立在22條可測試的規(guī)則基礎上,這些規(guī)則在下方按重要性和效果排列。研究顯示,按照以下規(guī)則,Web頁面響應時間可提升25%到50%:

◆ 盡量減少HTTP請求數。

◆ 使用內容發(fā)布網絡(CDN)。

◆ 添加Expires或Cache-Control頭部。

◆ 用Gzip壓縮內容。

◆ 將樣式表放在頂部。

◆ 將腳本放在底部。

◆ 避免使用CSS表達式。

◆ 將JavaScript和CSS放在外部。

◆ 減少DNS搜索。

◆ 精簡JavaScript和CSS。

◆ 避免使用重定向。

◆ 刪除重復的腳本。

◆ 配置ETags。

◆ 使Ajax可緩存。

◆ 使用GET進行Ajax請求。

◆ 減少DOM元素數。

◆ 消除404錯誤。

◆ 減小cookie大小。

◆ 對組件使用無cookie的域。

◆ 避免使用過濾器。

◆ 不在HTML中測量圖片大小。

◆ 使favicon.ico盡可能小,可緩存。

如圖:圖中的YSlow Statistics,對空緩存的訪問用戶和之前訪問過頁面的用戶的頁面大小做了對比。

 

 

Components選項卡顯示了每個組件及相關的性能信息。例如,如果組件被gzip壓縮,或ETag有內容(如果的話),都能看到。組件大小和超期時間也顯示在Components選項卡中,如圖所示。

 

 

Firebug

Firebug與Mozilla Firefox集成,在瀏覽網站時有大量開發(fā)工具隨手可用??梢约磿r編輯、調試、監(jiān)控Web頁面中的CSS、HTML和JavaScript。

可以使用Firebug Net面板,如圖所示,監(jiān)控Web頁面產生的HTTP流量。它向用戶展示了所有收集到的和計算出的信息。每個條目表示頁面的一個請求/響應來回。

 

 

Firebug Console面板,如圖所示,提供了兩種監(jiān)控代碼性能的方法。

 

 

Profile

對于某個特定的函數,使用Profiler。JavaScript Profiler是能用來測量每個JavaScript代碼執(zhí)行時間的Firebug特性。使用JavaScript Profiler來提升代碼的性能,或是查看為什么某個函數運行時間過長。它與console.time();類似,但JavaScript Profiler能提供更多代碼內部過程細節(jié)。

console.time()

對于特定代碼段,使用console.time()。控制臺會顯示您輸入到命令行的命令的結果。可以使用console.time(timeName)函數測量某個特定代碼或函數執(zhí)行多長時間。該特性對于提升JavaScript代碼的性能非常有用,樣例顯示:

  1. var timeName = 'measuringTime';      
  2. console.time(timeName); //start of the timer       
  3. for(var i=0;i<1000;i++){      
  4. //do something      
  5. console.timeEnd(timeName);  //end of the timer  

measuringTime:xxms將顯示在控制臺。

結束語

文中,開發(fā)者學習了如何識別Web應用程序中的一些問題或瓶頸。開發(fā)者們應了解一些工具、竅門和技巧,以用于調整和改善對用戶的性能。

原文:http://sd.csdn.net/a/20110919/304627.html

【編輯推薦】

  1. Web設計師必備:10款***免費CSS在線編輯器
  2. 每個Web設計師背后都有一群指點江山的神(20P)
  3. 高性能WEB開發(fā)經驗分享
  4. Web開發(fā)ABC:初學者必知的26個概念和技術
  5. 高性能WEB開發(fā)之Web性能測試工具推薦
責任編輯:陳貽新 來源: CSDN
相關推薦

2010-03-09 13:27:23

Web 2.0應用程序

2019-10-17 10:10:23

優(yōu)化Web前端

2022-07-04 17:32:12

DevOpsAIOps

2020-12-03 08:00:00

SQL數據庫MySQL

2010-02-04 09:41:03

Android應用程序

2018-11-06 09:53:27

2011-08-08 13:35:50

Web應用WANWeb應用程序

2010-11-15 16:20:33

Oracle系統(tǒng)優(yōu)化

2009-07-01 18:24:59

JSP應用程序JMeter

2025-03-19 09:04:39

2011-01-19 11:10:50

程序交付優(yōu)化應用程序性能管理監(jiān)控

2014-12-16 09:35:13

DevOps

2016-01-06 11:00:18

2018-05-29 15:16:59

威脅防御

2013-04-22 09:21:43

2019-02-01 09:50:00

提升Python程序性能

2015-05-07 09:05:18

2023-11-14 08:36:15

Celery工具

2011-07-07 09:03:12

ASP.NET

2009-01-08 19:14:37

服務器應用程序SQL Server
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久草综合在线 | 欧美美女一区二区 | 欧美久久一区二区三区 | 黄色大片免费看 | 国产欧美一区二区精品久导航 | 欧美国产亚洲一区二区 | 欧美一区二区 | 最新av中文字幕 | 国产一区二区中文字幕 | 久久在线免费 | 日本a∨精品中文字幕在线 亚洲91视频 | 天天草av | 亚洲性网 | 久久免费精品 | 成人免费网视频 | 亚洲视频在线一区 | 久久在线| 国产精品欧美一区二区三区不卡 | 国产日韩精品久久 | 综合伊人| 日韩人体视频 | 亚洲精品一区中文字幕 | 国产精品视频在线观看 | 亚洲天堂一区二区 | 色天堂影院 | 中文字幕精品一区久久久久 | 色综合久 | 天堂三级 | 伊人网在线综合 | 成人激情视频免费观看 | 视频在线日韩 | 请别相信他免费喜剧电影在线观看 | 精品欧美一区二区三区久久久 | 9色网站| 国产色婷婷精品综合在线手机播放 | 中文字幕91 | 日韩欧美亚洲综合 | 亚洲欧洲在线视频 | 久久精品国产免费一区二区三区 | 成人黄色电影在线观看 | 亚洲一区在线日韩在线深爱 |