全方位分析web前端如何進行性能優化

前言:

最近剛剛完成項目,空閑一段時間,想起之前有被問起怎么對前端進行性能優化,自己也是腦中零零散散的總不成體系,現特來總結,歡迎補充指教。

?

1、整體資源

  (1)js、css源碼壓縮

  (2)css文件放到文檔頂部,js?文件放到文檔底部

    因為瀏覽器渲染網頁是自上而下的,用戶第一眼見到的是頁面,先加載頁面相關的提高頁面加載速度,另外避免js在頁面沒有完全加載完成操作DOM帶來錯誤

  (3)進行CDN托管(具體可參看https://div.io/topic/930)

  (4)data緩存

?

2、css

(1)避免使用css expression (css?表達式)?

? ? ? ? 微軟在IE5時支持,IE8就不支持了,過老的內核,這個基本沒有人會使用

?(2)使用CSS Sprites(圖片精靈)

  將圖片合到一張大圖,并且控制圖片大小(在滿足顯示的情況下,過大圖片可以進行質量壓縮),目的減小體積,減小http訪問次數

?(3)js中動態改變元素樣式時,使用類名修改,而不是直接在DOM中更改css?屬性,避免頁面進行重構

?

3、image

? ? (1)大型web應用中,可以搭建圖片服務器,存放圖片以及視頻資源(具體實施請自行百度)

 (2)在?對于有圖片畫廊及圖片占大比重的網站中,采取圖片預加載的方式,提升用戶體驗

   (可參考https://blog.csdn.net/sunshine940326/article/details/53536535?locationNum=3&fps=1)

?

4、js

(1)模塊化編程,養成封裝方法的習慣,提高代碼的重復利用率

(2)減少閉包的使用頻率,減少內存占用

?

目前想到的是以上,歡迎補充和指教!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/370148.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370148.shtml
英文地址,請注明出處:http://en.pswp.cn/news/370148.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

DshanMCU-R128s2 SDK 架構與目錄結構

R128 S2 是全志提供的一款 M33(ARM)C906(RISCV-64)HIFI5(Xtensa) 三核異構 SoC,同時芯片內部 SIP 有 1M SRAM、8M LSPSRAM、8M HSPSRAM 以及 16M NORFLASH。 本文檔作為 R128 FreeRTOS SDK 開發指南,旨在幫助軟件開發工程師、技術支持工程師快速上手&am…

數據導出

數據導出和數據導入剛好是相反的,把邏輯反過來就可以了。 源碼:https://github.com/SeaLee02/FunctionModule/blob/master/UploadFiles/WebDemo/COM/DataToOut.aspx 效果: 然后勾選需要導出的數據,生成Excel 部分前臺:…

c語言清空輸入緩沖區函數,c語言:C語言清空輸入緩沖區在標準輸入(stdin)情況 -電腦資料...

C語言清空輸入緩沖區在標準輸入(stdin)情況下的使用程序1://功能:先輸入一個數字,再輸入一個字符,輸出hello bit#include int main(){int num 0;char ch ;scanf("%d", &num);scanf("%c", &ch);pri…

Spring MVC 3:上傳多個文件

只是在辦公室又漫長的一天,數據庫不可用,一個團隊成員現在滯后一周。 因此,我們必須作為一個團隊來交付它。 在Spring3,它看起來很直接上傳文件。 但是,從jsp文件上載多個文件幾乎沒有幫助。 上載多個文件需要完成三件…

spring 事務隔離級別和傳播行為_Spring事務傳播性與隔離性實戰

一、事務傳播性1.1 什么是事務的傳播性事務的傳播性一般在事務嵌套時候使用,比如在事務A里面調用了另外一個使用事務的方法,那么這倆個事務是各自作為獨立的事務執行提交,還是內層的事務合并到外層的事務一塊提交那,這就是事務傳播…

前端為什么非要動靜分離 說一下CDN托管的意義

大型Web應用對速度的追求并沒有止步于僅僅利用瀏覽器緩存,因為瀏覽器緩存始終只是為了提升二次訪問的速度,對于首次訪問的加速,我們需要從網絡層面進行優化,最常見的手段就是CDN(Content Delivery Network,…

unity語音聊天之 www.GetAudioClip

最近在開發語音聊天功能,游戲需要跨平臺安卓與ios,上傳本地錄制的wav文件至服務器后,需要根據服務器返回的地址進行語音文件的下載并進行播放。 這里通過使用www進行下載并播放 其中在ios播放時卻不行了,查詢官方文檔后發現,ios必…

輕談BFC

BFC 定義 CSS2.1的定義 Block formatting contexts 9.4.1 Block formatting contexts Floats, absolutely positioned elements, block containers (such as inline-blocks, table-cells, and table-captions) that are not block boxes, and block boxes with overflow other …

Java中的Selenium / WebDriver示例

幾年前,我正在忙于一些工作,客戶希望了解如何解決現實世界中的問題。 他們要求我自動化woot.com網站上的某些任務。 他們的任務是訪問各個網站,并閱讀當天商品的名稱和價格。 我寫了一些Selenium代碼,以為可以將其張貼在這里&am…

c語言中怎樣實現空格的替換,C語言實現去除字符串中空格的簡單實例

在網上看了些去除空格的代碼,覺得都不是很簡潔,就自己寫代碼實現它本著高效率,不使用額外存儲空間的想法實現該功能去除空格一共有三種:1、去除全部空格;2、一種是去除左邊空格;3、去除右邊空格想去除左右兩邊空格,只要先去除左邊…

python消息隊列中間件_python-RabbtiMQ消息隊列

1.RabbitMQ簡介AMQP,即Advanced Message Queuing Protocol,高級消息隊列協議,是應用層協議的一個開放標準,為面向消息的中間件設計。消息中間件主要用于組件之間的解耦,消息的發送者無需知道消息使用者的存在&#xff…

CSS position(定位)屬性

關于CSS position,來自MDN的描述: CSS position屬性用于指定一個元素在文檔中的定位方式。top、right、bottom、left 屬性則決定了該元素的最終位置。 然后來看看什么是文檔流(normal flow),下面是 www.w3.org 的描述: Normal flo…

tomcat配置文件server.xml詳解

版權聲明:本文為博主原創文章,未經博主允許不得轉載。 目錄(?)[] 元素名 屬性 解釋 server port 指定一個端口,這個端口負責監聽關閉tomcat 的請求 shutdown 指定向端口發送的命令字符串 service name 指定service 的名字 Con…

均值,方差,協方差,協方差矩陣,特征值,特征向量

大牛博客,收藏一下 http://blog.csdn.net/yangleo1987/article/details/52845912轉載于:https://www.cnblogs.com/gaohai/p/8086626.html

Java ByteBuffer –速成課程

以我的經驗,當開發人員第一次遇到java.nio.ByteBuffer時,會引起混亂和細微的錯誤,因為如何正確使用它尚不明顯。 在我對API文檔感到滿意之前,需要反復閱讀API文檔和一些經驗以實現一些微妙之處。 這篇文章是關于如何正確使用它們的…

c語言cth三角函數表示,三角函數與雙曲函數基本公式對照表

圓函數(三角函數)1.基本性質:sin tan cos x x x ,cos cot sin xx x 1sec cos x x ,1csc sin x x tan cot 1x x sin csc 1x x sec cos 1x x 22sin cos 1x x 221tan sec x x ,221cot csc x x 2.奇偶性:sin()sin x x -- cos()cos x x - tan()tan x x --3.…

實現編輯功能有哪幾個action_Web 應用的撤銷重做實現

背景前不久,我參與開發了團隊中的一個 web 應用,其中的一個頁面操作如下圖所示:GIF這個制作間頁面有著類似 PPT 的交互:從左側的工具欄中選擇元素放入中間的畫布、在畫布中可以刪除、操作(拖動、縮放、旋轉等&#xff…

為什么我們要做三份 Webpack 配置文件

時至今日,Webpack 已經成為前端工程必備的基礎工具之一,不僅被廣泛用于前端工程發布前的打包,還在開發中擔當本地前端資源服務器(assets server)、模塊熱更新(hot module replacement)、API Pro…

使用maven插件構建docker鏡像

為什么要用插件 主要還是自動化的考慮,如果額外使用Dockerfile進行鏡像生成,可能會需要自己手動指定jar/war位置,并且打包和生成鏡像間不同步,帶來很多瑣碎的工作。 插件選擇 使用比較多的是spotify的插件:https://github.com/spo…

windows下如何安裝pip以及如何查看pip是否已經安裝成功?

最近剛學習python,發現很多關于安裝以及查看pip是否安裝成的例子都比較老,不太適合于現在(python 3.6 )因此,下一個入門級別的教程。 0:首先如何安裝python我就不做介紹了。 1:如果安裝的是pyth…