原创 Webpack 各版本 ( v1 - v4 ) 的區別

前不久,研究了Webpack 4.X的整體配置,本篇文章我們研究 webpack各版本的區別 包括 v1,v2,v3,v4 文章目錄Webpack:v1 與 v2 的區別1. 新增對`ES6`語法的支持**2. 支持`tree-s

原创 Webpack 4.X 配置cdn加載資源

衆所周知,SPA單頁應用,首次訪問需要加載近全部資源,從而導致首頁渲染速度很慢。 繼而,出現很多性能優化方案:圖片/資源懶加載、減少http請求、減小請求資源大小,減少dom操作避免觸發迴流重繪,gzip壓縮,cdn加速等等

原创 webpack 4.X 從零配置SPA單頁應用

在三大框架潮流的推動下,大大小小的SPA單頁面應用層出不窮,工程化 / 模塊化 / 自動化 漸漸成爲開發的核心思想,但是他們都有一個特點: 源代碼無法在瀏覽器裏直接運行,必需通過編譯才行 因此也帶來了很多構建工具的興起;諸如具有

原创 Node.js 搭配 Socket.io 實現與客戶端實時通信

最近準備用react搭建node搭建一個大數據可視化平臺,並且服務端利用到socket.io,客戶端利用到socket.io-client 這裏總結下基本使用方式: 安裝: npm i express socket.io soc

原创 瀏覽器是多進程還是單進程?

瀏覽器是多進程的,每一個tab頁代表一個進程,如果多個空的tab頁會合爲一個進程 (webkit)) 每個進程下面有很多線程,我們具體介紹下: GUI 渲染線程 渲染引擎的主要工作是將HTML構造爲DOM樹,將CSS構造

原创 深入理解瀏覽器緩存機制 ( http )

一、介紹 http緩存:瀏覽器根據當前http請求報文策略 將網路資源存儲到本地內存(memory cache)/硬盤(disk cache)中 緩存流程: 瀏覽器瀏覽器緩存服務端發起請求,根據緩存規則驗證緩存沒有緩存或者緩存標識

原创 Node.js 解析request.body請求體參數

上篇文章我們完成了Node.js客戶端與服務端基本交互,並通過get請求實現客戶端傳參,服務端相應邏輯處理數據 今天我們用post請求,客戶端傳參,參數類型分別爲:application/json、application/x-ww

原创 Node.js 使用express搭建後臺服務器 ( 進階篇 )

上篇文章我們介紹了利用express微服務搭建簡單的後臺服務器以及中間件 今天我們把模塊化的思想注入,利用路由分別管理 / 暴露API接口與前端交互等等 我們先跑起來服務 let express = require('expres

原创 Node.js 利用express + multer實現文件上傳

上篇文章我們處理了 appliction/json以及application/x-www-form-urlencoded格式的請求參數 這篇文章我們處理 multipart/form-data格式參數,主要利用express的中間

原创 Node.js 使用express搭建後臺服務器 ( 基礎篇 )

一、介紹 Express 是一個簡潔而靈活的 node.js Web應用框架, 提供了一系列強大特性幫助你創建各種 Web 應用,和豐富的 HTTP 工具以及中間件 二、引入 let express = require('expr

原创 Node.js 利用Promise對象併發寫入流、讀取流(Stream)

上篇文章我們用高階函數(函數柯里化)實現併發文件讀取流、寫入流 今天,我們用另外一種方法實現: let fs = require('fa') // 寫一個通用的讀取函數,返回promise對象 function getFile(

原创 javascript高級 --- 函數柯里化

一、介紹 函數柯里化(currying)又稱部分求值,一個currying函數首先接受一部分參數,該函數不會立即求值,而是返回另外一個函數(高階函數),剛纔傳入的參數通過閉包存起來,當真正需要求值時,一次性返回。 二、案例 函數求

原创 Node.js 創建一個簡單的web服務器

Node可以寫 web服務器、 命令行工具、 網絡爬蟲、 桌面應用程序開發等 今天,我們利用node寫一個簡單的web服務器: 一、引入主模塊 let http = require('http') 二、創建一個服務器 //

原创 Node.js 利用高階函數 ( 柯里化 ) 併發寫入流、讀取流(Stream)

首先,介紹Stream實例對象的方法: data - 讀數據時觸發 end - 數據讀取完畢時觸發 error - 在接收和寫入過程中發生錯誤時觸發 finish - 所有數據已被寫入到底層系統時觸發 今天,我們利用nod

原创 ts定義class類/繼承以及相關規範

首先,簡單介紹ES6的class類 class Foo { constructor(name,age){ // 實例前的構造函數,實例添加name/age屬性 this.name = name this.age = ag