響用戶(hù)訪問(wèn)的最大部分是前端的頁(yè)面。網(wǎng)站的劃分一般為二:前端和后臺(tái)。我們可以理解成后臺(tái)是用來(lái)實(shí)現(xiàn)網(wǎng)站的功能的,比如:實(shí)現(xiàn)用戶(hù)注冊(cè),用戶(hù)能夠?yàn)槲恼掳l(fā)表評(píng)論等等。而前端呢?其實(shí)應(yīng)該是屬于功能的表現(xiàn)。
而我們建設(shè)網(wǎng)站的目的是什么呢?不就是為了讓目標(biāo)人群來(lái)訪問(wèn)嗎?所以我們可以理解成前端才是真正和用戶(hù)接觸的。
除了后臺(tái)需要在性能上做優(yōu)化外,其實(shí)前端的頁(yè)面更需要在性能優(yōu)化上下功夫,只有這樣才能給我們的用戶(hù)帶來(lái)更好的用戶(hù)體驗(yàn)。不僅僅如此,如果前端優(yōu)化得好,他不僅可以為企業(yè)節(jié)約成本,他還能給用戶(hù)帶來(lái)更多的用戶(hù),因?yàn)樵鰪?qiáng)的用戶(hù)體驗(yàn)。說(shuō)了這么多,那么我們應(yīng)該如何對(duì)我們前端的頁(yè)面進(jìn)行性能優(yōu)化呢?
前端性能優(yōu)化的方法?
一、content方面
1,減少HTTP請(qǐng)求:合并文件、CSS精靈、inline Image
2,減少DNS查詢(xún):DNS查詢(xún)完成之前瀏覽器不能從這個(gè)主機(jī)下載任何任何文件。方法:DNS緩存、將資源分布到恰當(dāng)數(shù)量的主機(jī)名,平衡并行下載和DNS查詢(xún)
3,避免重定向:多余的中間訪問(wèn)
4,使Ajax可緩存
5,非必須組件延遲加載
6,未來(lái)所需組件預(yù)加載
7,減少DOM元素?cái)?shù)量
8,將資源放到不同的域下:瀏覽器同時(shí)從一個(gè)域下載資源的數(shù)目有限,增加域可以提高并行下載量
9,減少iframe數(shù)量
10,不要404
二、Server方面
1,使用CDN
2,添加Expires或者Cache-Control響應(yīng)頭
3,對(duì)組件使用Gzip壓縮
4,配置ETag
5,F(xiàn)lush Buffer Early
6,Ajax使用GET進(jìn)行請(qǐng)求
7,避免空src的img標(biāo)簽
三、Cookie方面
1,減小cookie大小
2,引入資源的域名不要包含cookie
四、css方面
1,將樣式表放到頁(yè)面頂部
2,不使用CSS表達(dá)式
3,使用不使用@import
4,不使用IE的Filter
五、Javascript方面
1,將腳本放到頁(yè)面底部
2,將javascript和css從外部引入
3,壓縮javascript和css
4,刪除不需要的腳本
5,減少DOM訪問(wèn)
6,合理設(shè)計(jì)事件監(jiān)聽(tīng)器
六、圖片方面
1,優(yōu)化圖片:根據(jù)實(shí)際顏色需要選擇色深、壓縮
2,優(yōu)化css精靈
3,不要在HTML中拉伸圖片
4,保證favicon.ico小并且可緩存
七、移動(dòng)方面
1,保證組件小于25k
2,Pack Components into a Multipart Document
好了,我就談這些,這些東西也是我的一些簡(jiǎn)單的看法,當(dāng)然,你可能不贊成我說(shuō)的,或者你有更好的建議,你可以單獨(dú)聯(lián)系我,也可以在這帖子后面給我評(píng)論,或者叫留言。
近有客戶(hù)在linux系統(tǒng)部署皕杰報(bào)表后發(fā)現(xiàn)總有高度拉伸不到位的情況發(fā)生,可是我們自己卻無(wú)論怎么測(cè)試都不能重現(xiàn)問(wèn)題。不能重現(xiàn)問(wèn)題,就不好找出解決問(wèn)題的方法。
于是要來(lái)了這張問(wèn)題表的html源代碼,在瀏覽器中打開(kāi)后用F12檢查,發(fā)現(xiàn)這個(gè)單元格的拉伸高度計(jì)算不正確。見(jiàn)下圖:
是什么原因?qū)е碌挠?jì)算錯(cuò)誤呢?我們分析有兩種可能,一是所用的皕杰報(bào)表版本太老,二是計(jì)算高度的依據(jù)缺失,而計(jì)算拉伸高度的依據(jù)是字體和字號(hào)。
檢查了客戶(hù)使用的版本號(hào)沒(méi)有問(wèn)題,但在linux系統(tǒng)里卻只安裝了宋體,其它中文字體都沒(méi)有,而在報(bào)表里選擇的字體卻是微軟雅黑,計(jì)算的依據(jù)沒(méi)了,系統(tǒng)所以計(jì)算出的拉伸高度就是錯(cuò)的了。讓用戶(hù)把報(bào)表里的字體改成宋體,再測(cè)試?yán)旄叨茸兇罅艘稽c(diǎn),但是還是沒(méi)有完全拉開(kāi),我們判斷是jre里也沒(méi)有宋體,理論上在jre里安裝宋體后拉伸問(wèn)題就會(huì)得到解決。
因而我們給了兩個(gè)解決方案:一是在linux系統(tǒng)中和jre中安裝所用的中文字體,方法按linux系統(tǒng)及安裝jdk的基本要求,這里不做說(shuō)明。二是改這個(gè)單元格的css,讓單元格廢棄計(jì)算的拉伸高度,改為自動(dòng)拉伸。
在皕杰報(bào)表設(shè)計(jì)器全局屬性web資源引用中添加:
<style type="text/css">
.expand div{
height: auto !important;
}
</style>
在設(shè)計(jì)器這個(gè)單元格的屬性css樣式里添加expand。
用戶(hù)覺(jué)得jre中安裝中文字體比較麻煩,決定采用方法二測(cè)試。部署后我們看到單元格已經(jīng)正常拉伸了,用F12檢查一下運(yùn)行的css,果然是廢棄了計(jì)算的高度,而采用了我們新增的css格式。見(jiàn)圖:
至此高度拉伸不到位問(wèn)題得以解決。但我們認(rèn)為最好的解決方案還是方法一,把要用的中文字體安裝上,避免產(chǎn)生錯(cuò)誤的計(jì)算結(jié)果。
evExpress WinForms擁有180+組件和UI庫(kù),能為Windows Forms平臺(tái)創(chuàng)建具有影響力的業(yè)務(wù)解決方案。DevExpress WinForms能完美構(gòu)建流暢、美觀且易于使用的應(yīng)用程序,無(wú)論是Office風(fēng)格的界面,還是分析處理大批量的業(yè)務(wù)數(shù)據(jù),它都能輕松勝任!
DevExpress WinForm 近日正式發(fā)布了2022年第一個(gè)重大版本——v22.1,此版本也正式升級(jí)了之前版本中發(fā)布的HTML CSS模板功能,歡迎下載最新版體驗(yàn)!
DevExpress WinForms Subscription官方最新版免費(fèi)下載試用,歷史版本下載,在線文檔和幫助文件下載-慧都網(wǎng)
v22.1 為我們的WinForms ListBox、ComboBox和Alert控件引入了 HTML 和 CSS 標(biāo)記支持,使用HtmlTemplates屬性定義可應(yīng)用于項(xiàng)目的HTML-CSS模板集合,閱讀以下文章:
處理以下事件以響應(yīng)針對(duì) HTML UI 元素的鼠標(biāo)操作:
您現(xiàn)在可以將存儲(chǔ)庫(kù)項(xiàng)目包裝在 <input> 標(biāo)記內(nèi)。
'name' 屬性按名稱(chēng)引用存儲(chǔ)庫(kù)項(xiàng),'value' 屬性指定數(shù)據(jù)字段名稱(chēng)。
HTML
<div class='default-avatar-container' hidden='${HasPhoto}'>
<input class='default-avatar' name='pictureEdit' value='${Photo}' />
<a class='choose-photo' id='choose_Photo'>Choose a photo</a>
</div>
<div class='default-avatar-container avatar-container' hidden='${IsDefaultPhoto}'>
<input class='avatar' name='pictureEdit' value='${Photo}' />
</div>
<div class='input-box'>
<input class='input' name='emailEdit' value='${Email}'/>
</div>
我們的Template Designer 在包括'In-place Editor Repository' 選項(xiàng)卡,打開(kāi)此選項(xiàng)卡來(lái)創(chuàng)建要在 HTML 模板中引用的存儲(chǔ)庫(kù)項(xiàng)目。
HTML 模板設(shè)計(jì)器現(xiàn)在附帶以下選項(xiàng):
我們添加了一個(gè)新的TileViewOptionsHtmlTemplate.ItemAutoHeight 選項(xiàng)來(lái)支持由HTML和基于CSS模板呈現(xiàn)的圖塊的自動(dòng)高度模式,在自動(dòng)高度模式下,磁貼會(huì)垂直拉伸以完全顯示內(nèi)容。
我們支持以下 CSS 屬性:
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。