Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
著互聯(lián)網(wǎng)的發(fā)展,短劇成為了人們生活中不可或缺的一部分。短劇網(wǎng)站因其豐富的內(nèi)容和便捷的觀看方式而備受歡迎,然而,隨著網(wǎng)站用戶量的增加,其性能和訪問(wèn)速度也成為了一個(gè)亟需解決的問(wèn)題。在這樣的背景下,優(yōu)化網(wǎng)站代碼是提升網(wǎng)站性能與訪問(wèn)速度的重要策略。
對(duì)于短劇網(wǎng)站來(lái)說(shuō),減少HTTP請(qǐng)求是一個(gè)重要的優(yōu)化策略。當(dāng)用戶訪問(wèn)一個(gè)網(wǎng)站時(shí),會(huì)涉及到多個(gè)文件的請(qǐng)求,如HTML、CSS、JavaScript、圖片等。每個(gè)文件都需要進(jìn)行一次HTTP請(qǐng)求,影響了網(wǎng)站的加載速度。通過(guò)合并和壓縮這些文件,可以減少HTTP請(qǐng)求的數(shù)量,提升網(wǎng)站的加載速度。同時(shí),使用瀏覽器緩存可以使用戶再次訪問(wèn)時(shí)節(jié)省下載時(shí)間,進(jìn)一步提高訪問(wèn)體驗(yàn)。
進(jìn)行代碼優(yōu)化可以減少網(wǎng)站的頁(yè)面大小,從而提升性能。優(yōu)化CSS和JavaScript代碼,刪除冗余和重復(fù)的代碼,可以減少整個(gè)頁(yè)面的加載時(shí)間。同時(shí),盡量避免使用大型的圖片和視頻,或者對(duì)其進(jìn)行壓縮處理,可以減小頁(yè)面的大小,提高網(wǎng)站的加載速度。
使用異步加載技術(shù)也是優(yōu)化網(wǎng)站代碼的一種策略。將不影響網(wǎng)頁(yè)渲染的資源(如JavaScript文件)放在網(wǎng)頁(yè)底部,而不是頭部,可以避免阻塞頁(yè)面的加載。這樣一來(lái),頁(yè)面的首次加載速度將會(huì)大大提升。
對(duì)于短劇網(wǎng)站來(lái)說(shuō),服務(wù)器的選擇和配置也是影響性能的重要因素。選擇適合網(wǎng)站規(guī)模和流量的服務(wù)器,并進(jìn)行合理的配置,保證服務(wù)器的穩(wěn)定運(yùn)行和優(yōu)化網(wǎng)站的訪問(wèn)速度。
通過(guò)以上的優(yōu)化策略,短劇網(wǎng)站可以顯著提升性能和訪問(wèn)速度,進(jìn)一步提高用戶體驗(yàn)。對(duì)于網(wǎng)站開(kāi)發(fā)者和運(yùn)營(yíng)者來(lái)說(shuō),需要時(shí)刻關(guān)注網(wǎng)站性能,并不斷優(yōu)化代碼,以滿足用戶對(duì)快速訪問(wèn)的需求。
短劇網(wǎng)站的代碼優(yōu)化是提升網(wǎng)站性能與訪問(wèn)速度的重要策略。通過(guò)減少HTTP請(qǐng)求、代碼優(yōu)化、異步加載和服務(wù)器配置等措施,可以顯著提升網(wǎng)站的性能和訪問(wèn)速度,為用戶提供更好的體驗(yàn)。
短劇系統(tǒng)搭建小編推薦:
https://www.zongqi.cc/product/view8958.html
為您提供縱企短劇網(wǎng)站建設(shè),短劇系統(tǒng)搭建,短劇小程序搭建及短劇APP制作服務(wù)。
能,這個(gè)詞如今被炒的很熱,也是每個(gè)開(kāi)發(fā)者,由“知道”、“會(huì)做”之后必經(jīng)的一個(gè)“怎樣做好”的階段。性能關(guān)乎用戶在不同設(shè)備和不同網(wǎng)絡(luò)狀態(tài)下的體驗(yàn)。也被多方面因素所影響。此文說(shuō)說(shuō)css方面怎樣做到高性能。
高性能css
Html和css本身的性能問(wèn)題并不突出,在提高可讀性和可維護(hù)性的前提下,如果能讓代碼運(yùn)行和解析的速度更快,則是錦上添花了。
一、css相關(guān)的圖片處理
現(xiàn)在的網(wǎng)頁(yè)當(dāng)中,圖片所占的比重以及它的重要性大家都知道。那么如何處理好圖片以及如何為圖片設(shè)置樣式,才能讓用戶打開(kāi)網(wǎng)頁(yè)時(shí)體驗(yàn)更好呢?下面給出一些意見(jiàn):
(1)不給圖片設(shè)置尺寸
在我個(gè)人的從業(yè)經(jīng)歷當(dāng)中,有過(guò)這樣的情況,我按照設(shè)計(jì)稿做好了頁(yè)面,交給后臺(tái)去測(cè)試,他就突然跑過(guò)來(lái)跟我說(shuō):hi,你看,這兒出狀況了,我一看,壞菜,圖片出格了,我才想起沒(méi)有給圖片定義寬高(直接從設(shè)計(jì)稿里切的也不需要),然后就犯錯(cuò)了似的在css樣式里定義了寬高。以至于后來(lái)我把這個(gè)作為下次再做頁(yè)面時(shí)候的注意事項(xiàng)。當(dāng)我看到這一條意見(jiàn)的時(shí)候,才更知一二。
來(lái)看解釋,第一、設(shè)計(jì)人員為了畫(huà)面的精美,會(huì)制作一些超出需求尺寸的圖片;第二、同一張圖片可能會(huì)在頁(yè)面不同地方多次使用,比如縮略圖、正常圖、大圖。問(wèn)題來(lái)了,如果圖片原始尺寸和實(shí)際需求不同,在使用過(guò)程中就會(huì)存在性能問(wèn)題,利用樣式縮放會(huì)帶來(lái)cpu的額外計(jì)算過(guò)程,增加了圖片在瀏覽器的渲染時(shí)間,網(wǎng)絡(luò)傳輸過(guò)程也會(huì)占更多帶寬,增加下載時(shí)間。因此,最佳做法是,為需要的部分單獨(dú)做一套圖片,初始頁(yè)面加載時(shí)就能更快展示。
(2)使用css“雪碧圖“
是將零散的圖片合并成一張大圖,在利用css進(jìn)行背景定位。好處是減少請(qǐng)求數(shù),提高了圖片整體的加載速度。
但它也存在一些缺點(diǎn):
比如,多張圖片合并成大圖,需要精確計(jì)算,仔細(xì)的調(diào)整位置,單純手工制作是一件很復(fù)雜的事情。(所幸現(xiàn)在有一些工具可以幫我們做)
另外,維護(hù)過(guò)程復(fù)雜,要盡量讓已有的圖片保持原來(lái)的位置不變,如果是背景圖的尺寸發(fā)生變化導(dǎo)致原有區(qū)域無(wú)法放置,那就只好放棄,如果非要在原有位置修改,則剩余的圖片樣式都需要修改,是很繁瑣的過(guò)程。新加的圖片最好放在最后面。
還有就是使用不當(dāng)會(huì)導(dǎo)致性能問(wèn)題,最大的問(wèn)題就是內(nèi)存消耗。如果制作過(guò)程不做任何的規(guī)劃,隨意擺放,則可能會(huì)使圖片變得相當(dāng)大,從而很占內(nèi)存。
下面是一些最佳實(shí)踐:
1、合理組織“雪碧”圖
如果要把所有的圖片放在一張圖上面,也會(huì)有不妥,維護(hù)方面也不會(huì)很方便。組織背景圖主要按照模塊和背景圖的風(fēng)格來(lái)劃分。比如,作為展示的縮略圖放在一起,評(píng)論、點(diǎn)贊、上下箭頭等圖標(biāo)放在一起等。
2、在項(xiàng)目后期應(yīng)用css sprite技術(shù)
因?yàn)橐话阍陂_(kāi)發(fā)過(guò)程中,會(huì)比較頻繁的修改或者更換圖片,如果這個(gè)時(shí)候使用sprite技術(shù),就會(huì)增加很多開(kāi)發(fā)成本。
3、合理控制背景圖單元間的距離及背景圖位置
這個(gè)原則是為了防止在背景圖比元素大小更小的時(shí)候,區(qū)域出現(xiàn)別的無(wú)關(guān)背景圖
4、控制“雪碧”圖的尺寸和大小
因?yàn)榇蟪叽绲膱D片會(huì)占用大量的內(nèi)存,所以要控制在合理尺寸,推薦長(zhǎng)寬相乘不超過(guò)2500,大小在200kb內(nèi)
5、借助相關(guān)工具處理sprite
二、使用高效css選擇器
簡(jiǎn)單來(lái)說(shuō),能被瀏覽器快速解析和匹配的css選擇器,就是高效的選擇器。
首先要知道瀏覽器如何解析css
舉個(gè)例子:.nav ul.list li div{}
我們常見(jiàn)的思維是,先去找到nav這個(gè)類,再找類包含的ul,再找ul中類為list的后代所有l(wèi)i中所有的div,簡(jiǎn)而言之,就是從左到右。可事實(shí)是這樣么?么?么?~
事實(shí)是相反的!意味著什么呢?就是說(shuō)它不是從第一個(gè)開(kāi)始去慢慢的縮小范圍,而是從div這個(gè)“裸奔”的盒子開(kāi)始,相當(dāng)于遍歷,然后再找到li,以此類推,好吧不用我形容你應(yīng)該知道這當(dāng)中的消耗。理解這一原理非常重要,高效的選擇器意味著匹配更快,查找次數(shù)更少。所以我們定義選擇器時(shí),應(yīng)該讓第一次匹配時(shí)的數(shù)量達(dá)到最少,并且讓整體的匹配查找次數(shù)最少。
以上這些解釋恰恰遵循了這樣一些原則
(1)避免使用通配符
(2)避免使用標(biāo)簽選擇器和單個(gè)屬性選擇器作為關(guān)鍵選擇器
(3)不要在id選擇器前加標(biāo)簽名
(4)盡量不要在選擇符定義過(guò)多層級(jí),層級(jí)越少,同時(shí)也降低了css和dom結(jié)構(gòu)的耦合程度,提高樣式的可維護(hù)性
(ps:老實(shí)說(shuō)上面的這些“禁忌”你是不是都有犯過(guò)?~)
做個(gè)小結(jié),以上所說(shuō),有兩點(diǎn)需要知道,第一點(diǎn)在開(kāi)頭就已經(jīng)提到,css的性能問(wèn)題表現(xiàn)的并不突出,特別是在小項(xiàng)目中,所以,可維護(hù)性為先;第二點(diǎn)是雖然定義id選擇器,有唯一性的優(yōu)勢(shì),但是一個(gè)頁(yè)面只能定義唯一id,定義過(guò)多id會(huì)使重用性降低,維護(hù)更困難,所以不建議多用id。
三、減少css的代碼量
提高網(wǎng)站整體加載速度的一個(gè)重要手段,就是提高代碼文件的網(wǎng)絡(luò)傳輸速度。除了代碼壓縮,精簡(jiǎn)代碼也是一種手段。
(1)定義簡(jiǎn)潔的css規(guī)則
合并相關(guān)規(guī)則,定義簡(jiǎn)潔的屬性值
合并規(guī)則是指比如font-family、font-size、font-weight等等,可以合并為font。 簡(jiǎn)潔屬性值,比如顏色值:color,#33AAFF可以簡(jiǎn)化為#3AF等。
(2)合并相同定義
網(wǎng)頁(yè)中總會(huì)有一些模塊有較高相似度,則可把同樣的部分共用一次定義,不同的部分再單獨(dú)定義。而且在css中,很多屬性是可以繼承的,則只需要在合適的地方定義一次即可。
(3)刪除無(wú)效的定義
無(wú)效的定義,并不會(huì)影響頁(yè)面功能顯示,但會(huì)影響頁(yè)面展示的性能,增加代碼量的同時(shí),也增加了瀏覽器解析代碼的時(shí)間。無(wú)效的定義包括無(wú)效的規(guī)則及無(wú)效的樣式屬性,一般是開(kāi)發(fā)過(guò)程中引入的,而從直觀上無(wú)法判斷,這情況,可以用工具,chrome自帶的工具就可以查找css中的無(wú)效樣式。
綜上所述,css能夠用來(lái)提高性能的方法還是蠻多的,這里只提及三點(diǎn),還有更多的提高性能的方法,后續(xù)待述,雖然css能夠提高性能,但我們很容易忽略它們,因?yàn)樗鼈兯鶐?lái)的影響似乎沒(méi)有那么明顯,而且,很多人可能為了圖方便,任意揮灑著自己的才華,想怎么寫(xiě)就怎么寫(xiě),能達(dá)到效果就行,這也有點(diǎn)小消極哈,忘了你的優(yōu)秀工程師目標(biāo)了嗎?css規(guī)則雖不不難,真正寫(xiě)好也不易,還是要有些追求極致的精神滴。諸君且寫(xiě)且珍惜吧!~
做前端性能測(cè)試時(shí)較大的文件需要更多時(shí)間來(lái)下載,并可能導(dǎo)致我們的網(wǎng)站加載緩慢,從而導(dǎo)致用戶體驗(yàn)欠佳。因此刪除JS和CSS中未被使用的代碼就很有必要了!Coverage工具就可以非常方便的實(shí)現(xiàn)這一需求。
Coverage 是chrome開(kāi)發(fā)者工具中的一個(gè)功能,從字面意思上就可以知道它是可以用來(lái)檢測(cè)代碼在網(wǎng)站運(yùn)行時(shí)有哪些js和css是已經(jīng)在運(yùn)行,而哪些js和css是還沒(méi)有用到的。我們可以在Chrome的開(kāi)發(fā)者工具的source面板中將其啟動(dòng),選擇下圖中的三個(gè)點(diǎn)圖標(biāo),然后在菜單中選擇Coverage即可。
啟動(dòng)Coverage后,點(diǎn)擊下圖中的刷新按鈕,就可以對(duì)當(dāng)前頁(yè)面中所涉及的JS和CSS腳本進(jìn)行代碼覆蓋率統(tǒng)計(jì)工作。
具體統(tǒng)計(jì)情況如下圖所示,最右邊顯示的是我們加載的css和js文件數(shù)量,紅色區(qū)域表示已運(yùn)行的代碼,而藍(lán)色表示已加載但未運(yùn)行的代碼。
通過(guò)coverage可用來(lái)發(fā)現(xiàn)頁(yè)面中尚未用到的js 和 css代碼,我們可以為用戶只提供必要的代碼,刪除沒(méi)有用到的代碼,這樣就可以提升頁(yè)面的性能,這對(duì)于找出可以進(jìn)行拆分的腳本以及延遲加載非關(guān)鍵腳本來(lái)說(shuō)非常有用的。
在這里給大家分享一個(gè)我遇到的一個(gè)難纏的問(wèn)題
在chrome 116的source面板中,設(shè)置pretty print方式顯示代碼時(shí),無(wú)法完全顯示具體的代碼利用率,即左側(cè)的紅藍(lán)線條會(huì)出現(xiàn)展示缺失(具體原因暫時(shí)未知),如上圖所示。
但是在chrome 90版本中這個(gè)問(wèn)題是可以避免的,如下圖所示,我們可以清晰的看到哪些代碼執(zhí)行了(藍(lán)色),哪些代碼沒(méi)有執(zhí)行(紅色),所以想具體查看代碼利用率的同學(xué)使用chrome 90版本即可
我的每一篇文章都希望幫助讀者解決實(shí)際工作中遇到的問(wèn)題!如果文章幫到了您,勞煩點(diǎn)贊、收藏、轉(zhuǎn)發(fā)!您的鼓勵(lì)是我不斷更新文章最大的動(dòng)力!
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。