原创 白屏和首屏的時間

一、白屏時間 輸入url按回車到開始渲染元素的時間,也就是到出現的一個字符 //白屏結束的時間 window.firstPaint = Date.now(); //白屏時間 console.log(firstPai

原创 webpack 性能優化一

Webpack 性能優化(一) 一、優化開發體驗,提高開發效率 1.優化構建速度。如果項目很龐大的時候,構建的耗時會變得很長,每次等待構建的耗時加起來是個很大的數目 2.優化使用

原创 webpack 性能優化二

Webpack 性能優化(二) 一、使用DllPlugin(動態鏈接庫):將網頁依賴的基礎模塊比如rect,react-dom,vue模塊抽離出來,打包到一個個單獨的動態鏈接庫中

原创 關於promise一些總結

用法 function loadData () { return new Promise(resolve => { //執行一些操作 resolve(); }); } loadData().then(() => { //執行完以後

原创 重構那件事之七----簡化函數調用

函數改名 添加參數(注意參數不能過長(3個)) 移除參數 如果不用參數,記住移除,不能增加負擔 查詢函數和修改函數分離 令函數攜帶參數處理類似的函數功能 以明確函數取代參數 沒用的函數幹掉

原创 animation, transition動畫效果區別(transform, translate)

animation: 配合@keyframe 兩者的name 要對應 .box{ height:100px;width:100px; border:15px solid black; animation: changebox 10

原创 WEB安全-----CRSF

CSRF 跨站域請求僞造, 通過僞裝來自受信任用戶的慶七一來利用受信任的網站 攻擊者盜用了你的身份,僞裝成你發送惡意請求。它做的事情是:以你的名義發郵件,發消息,盜取你的賬號,甚至購買商品,造成個人隱私泄密和財產安全 原理 1.登

原创 WEB安全-----XSS

XSS: 跨站腳本攻擊 攻擊者往web頁面插入惡意代碼,當用戶瀏覽該頁面時,會被執行,從而達到惡意攻擊用戶的目的。通常通過php輸出函數將js輸入html,通過本地瀏覽器執行 分類 反射性XSS 非持久化 攻擊者事先製作好攻擊

原创 關於重構那些事(二)

接上一篇方法: 重複代碼 把一些重複代碼提取出來 過長函數 如果一個函數過長,應該拆解,get,set和處理函數 過大的類(前端來說一般沒有,主要在java和c++中) 過長的參數列 一般參數列表不超過3個,如果有多個用對象 發散

原创 flex及盒子模型那些事

flex 父元素設置 display: flex flex-direction: row | column | row-reverse | column-reverse flex-wrap: wrap | no-wrap | wr

原创 前端安全CRSF

CSRF 跨站域請求僞造, 通過僞裝來自受信任用戶的慶七一來利用受信任的網站 攻擊者盜用了你的身份,僞裝成你發送惡意請求。它做的事情是:以你的名義發郵件,發消息,盜取你的賬號,甚至購買商品,造成個人隱私泄密和財產安全 原理 1.登

原创 vue diff算法詳解

前言 因爲重新渲染數據會引起dom的重繪和迴流(重排),這對性能消耗消耗是非常大的,我們在開發的時候儘量避免重繪和迴流。因此vue就引入了虛擬dom,也就是virtual dom,這樣可以避免直接頻繁操作真實的dom,以此來減少性

原创 前端安全XSS

XSS: 跨站腳本攻擊 攻擊者往web頁面插入惡意代碼,當用戶瀏覽該頁面時,會被執行,從而達到惡意攻擊用戶的目的。通常通過php輸出函數將js輸入html,通過本地瀏覽器執行 分類 反射性XSS 非持久化 攻擊者事先製作好攻擊

原创 node 回調函數

node 的 異步編程 主要是 體現在 回調函數上 異步編程依託於回調來實現,但不能說使用了回調後程序就異步化了。 回調函數在完成任務後就會被調用,Node 使用了大量的回調函數,Node 所有 API 都支持回調函數。 例如

原创 node js使用 (一)

使用 nodejs服務器訪問 本地的 js文件 首先在 node js 安裝的文件中 創建 server.js文件 具體的 server.js 文件內容 如下: var http = require('http'); h