国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

【前端自動化】如何使用Node.js實(shí)現(xiàn)熱重載頁面

開發(fā) 前端 自動化
今天我們將使用Node.js實(shí)現(xiàn)一個熱重載頁面。

[[397321]]

前言

前不久我結(jié)合browser-sync+gulp+gulp-nodemon實(shí)現(xiàn)了一款生產(chǎn)環(huán)境熱更新(我之前理解有點(diǎn)偏差,應(yīng)該定義為熱更新,不是熱重載)的項(xiàng)目腳手架,那么,今天我們將使用Node.js實(shí)現(xiàn)一個熱重載頁面。

那么,我今天就總結(jié)一下吧,以防止大家也跟我一樣。

熱重載

所謂熱重載就是頁面每次改動,不需要手動去刷新,可自動刷新。

熱更新

瀏覽器的無刷新更新,允許在運(yùn)行時替換,添加,刪除各種模塊,而無需進(jìn)行完全刷新重新加載整個頁面。

目的:加快開發(fā)速度,所以只適用于開發(fā)環(huán)境下使用。

思路:保留在完全重新加載頁面時丟失的應(yīng)用程序的狀態(tài),只更新改變的內(nèi)容,以節(jié)省開發(fā)時間,調(diào)整樣式更加快速,幾乎等同于在瀏覽器調(diào)試器中更改樣式。

實(shí)戰(zhàn)

一、初始化項(xiàng)目

這里使用以下命令初始化項(xiàng)目。這里使用-y后綴我是為了更快更方便地初始化,如果你想自定義的話,可以一行一行的敲。

  1. npm init -y 

初始化完成,根目錄下多了一個package.json文件。

二、創(chuàng)建Node主文件app.js

下面,我們將創(chuàng)建一個Nodejs操作主文件app.js。

  1. const http = require('http'); 
  2. const express = require('express'); 
  3. const app = express(); 
  4. const server = http.createServer(app); 
  5. const path = require('path'); 
  6. const fs = require('fs'); 
  7. const io = require('socket.io')(server); 
  8.  
  9. app.use(express.static(path.join(__dirname, './public'))); 
  10. createWatcher(); 
  11.  
  12. function createWatcher() { 
  13.   const absolute = './public'
  14.   fs.watch(absolutefunction (eventType, filename) { 
  15.     if (filename) { 
  16.       io.sockets.emit('reload'); 
  17.     } 
  18.   }); 
  19.  
  20. server.listen(8086, function () { 
  21.   console.log(`The server is running on port 8086.`); 
  22. }); 

首先,我們使用http、express結(jié)合創(chuàng)建了一個http服務(wù)器,又同時與socket.io綁定。然后我們又利用express托管靜態(tài)文件,指定靜態(tài)文件目錄public。我們這里使用了fs模塊下的watch方法,用于監(jiān)聽文件目錄的變化。如果目錄下的文件改變了,那么就會觸發(fā) io.sockets.emit('reload');這行代碼。既然觸發(fā)了那肯定要有地方監(jiān)聽。

三、創(chuàng)建index.html文件

我們會在根目錄下創(chuàng)建一個public文件夾,文件夾內(nèi)創(chuàng)建一個index.html文件。

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3.   <head> 
  4.     <meta charset="UTF-8" /> 
  5.     <title>熱更新頁面</title> 
  6.     <link rel="stylesheet" href="style.css" /> 
  7.     <style> 
  8.       h1 { 
  9.         color: red; 
  10.       } 
  11.     </style> 
  12.   </head> 
  13.   <body> 
  14.     <h1>Hello</h1> 
  15.     <p class="txt">文本</p> 
  16.     <ul> 
  17.       <li>1</li> 
  18.       <li>2</li> 
  19.       <li>3</li> 
  20.       <li>4</li> 
  21.     </ul> 
  22.     <p class="name"></p> 
  23.     <script src="./socket.io.min.js"></script> 
  24.     <script src="./index.js" type="module"></script> 
  25.     <script type="module"
  26.       import obj from './index.js'
  27.       io.connect('http://localhost:8086/').on('reload', () => 
  28.         window.location.reload() 
  29.       ); 
  30.       document.querySelector('.name').innerHTML = obj.name
  31.     </script> 
  32.   </body> 
  33. </html> 

文件內(nèi)容如上,我們首先需要關(guān)注的是怎么與后臺監(jiān)聽,我們只需要引入socket.io.min.js文件(文件我會在文末給出源碼地址),然后在下面鍵入以下代碼:

  1. io.connect('http://localhost:8086/').on('reload', () =>window.location.reload()); 

http://localhost:8086/ 這是后臺的地址,需要監(jiān)聽這個地址,才能跟后臺進(jìn)行通信。因?yàn)楹笈_我們自定義了一個reload事件,前臺也只需要監(jiān)聽這個事件。如果后臺觸發(fā)了這個事件,那么前臺就會監(jiān)聽到,隨機(jī)執(zhí)行代碼。

四、創(chuàng)建其他類型的文件

我們可以在上面的index.html文件中看到了我外部引入了index.js文件與style.js文件。主要是檢測如果改變其中的代碼,頁面是否也相應(yīng)的改變,答案是肯定的。

五、實(shí)時更新頁面

我們首先啟動項(xiàng)目。

  1. node app.js 

會看到終端下會顯示The server is running on port 8086.,然后就可以在瀏覽器打開http://localhost:8086/這個地址。我們更改下代碼,就可以看下頁面實(shí)時顯示,并且是按下快捷鍵保存代碼時(這里推薦編輯器不要實(shí)時自動保存代碼),頁面就實(shí)時更新。

這樣是不是很省事了,不會每次切換頁面點(diǎn)擊刷新頁面了。想當(dāng)初使用JQ寫頁面時,當(dāng)初真是覺得自己太傻了,每次都重復(fù)勞動。

結(jié)語

謝謝閱讀,希望沒有浪費(fèi)你的時間。

源碼地址:https://gitee.com/maomincoding/hot-load

 

責(zé)任編輯:姜華 來源: 前端歷劫之路
相關(guān)推薦

2022-07-14 08:16:24

Node.js后端自動化測試

2021-08-13 14:00:14

Node.js開發(fā)前端

2012-09-29 11:13:15

Node.JS前端開發(fā)Node.js打包

2021-04-02 09:00:00

Node.js開發(fā)工具

2022-08-28 16:30:34

Node.jsDocker指令

2020-10-14 10:30:07

前端Node代碼

2021-07-16 04:56:03

NodejsAddon

2011-09-09 14:23:13

Node.js

2020-09-04 15:06:04

Docker容器化Node.js

2021-03-09 08:03:21

Node.js 線程JavaScript

2021-07-30 11:20:53

JavaScriptNode.jsWeb Develop

2022-08-22 07:26:32

Node.js微服務(wù)架構(gòu)

2022-05-05 08:02:44

MongoDBNode.js加密

2014-04-10 09:43:00

Node.jsTwilio

2022-09-12 15:58:50

node.js微服務(wù)Web

2020-08-05 08:31:51

SSL TLSNode.js

2021-06-15 15:03:21

MongoDBNode.jsCRUD

2023-12-07 08:07:47

Node流程代碼

2020-08-07 10:40:56

Node.jsexpress前端

2023-01-10 14:11:26

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

好看的日韩精品| 欧美午夜大胆人体| 亚洲色图欧美偷拍| 日本我和搜子同居的日子高清在线| 一区二区三区久久| 国产有码在线| 日韩精品一区二区三区四区视频| 欧美亚洲大片| 26uuu日韩精品一区二区| 久久影院100000精品| 欧洲精品国产| 久久久99久久精品欧美| 桃乃木香奈av在线| 亚洲精品电影网站| 青青草原在线亚洲| 久久亚洲免费| 丁香婷婷综合五月| 成人频在线观看| 亚洲国产精品999| 国产色噜噜噜91在线精品| 91久久久一线二线三线品牌| 国产一区二区三区蝌蚪| 精精国产xxxx视频在线动漫| 欧美日本国产视频| 美女精品视频在线| 蜜桃传媒一区二区| 中文字幕一区二区三区在线播放| 国产写真视频在线观看| 久久福利视频网| 一本色道久久综合| 97在线免费| 精品国产91久久久久久久妲己 | 国产日韩三级在线| 丁香在线视频| 久久99视频免费| 国产亚洲午夜| jizz蜜桃视频在线观看| 精品欧美一区二区久久| 九九免费精品视频在线观看| 蜜桃麻豆www久久国产精品| 国产精品欧美一区喷水| free性m.freesex欧美| 国产精品欧美激情在线播放| 成人午夜激情视频| 国产原创视频在线观看| 国产精品久久久久久久久久免费 | 毛片在线播放视频| 欧美日韩亚洲另类| 超碰成人在线观看| 免费看啪啪网站| 精品欧美aⅴ在线网站| 国产精品国产三级在线观看| 欧美日韩天天操| 亚洲精品久久嫩草网站秘色| 欧美日韩精品免费观看视完整| av成人午夜| 亚洲人成在线观看一区二区| 日本精品另类| 亚洲午夜精品一区二区| 欧美丝袜丝交足nylons| 国产欧美日韩视频在线| 手机看片福利日韩| 中文字幕亚洲无线码a| 美国一区二区三区在线播放 | 91av入口| 欧美肥臀大乳一区二区免费视频| 国产中文字幕一区| 污视频在线免费观看网站| 91手机在线观看| 亚洲成a人片综合在线| 成人线上播放| 真人抽搐一进一出视频| 亚洲大胆人体在线| 亚洲黄页一区| 婷婷亚洲一区二区三区| 91av视频在线播放| 欧美激情一区三区| 在线免费观看亚洲| 国产免费内射又粗又爽密桃视频| 欧美女孩性生活视频| 香蕉视频官网在线观看日本一区二区| 一本大道熟女人妻中文字幕在线| 日韩精品中文字幕视频在线| 免费观看在线综合| www.视频在线.com| 国产精品久久亚洲| 欧美日韩一级大片网址| 欧美激情综合色综合啪啪| 日韩午夜影院| 成人av电影观看| 日韩av电影院| 天天综合狠狠精品| 亚洲品质自拍| 天天综合网天天做天天受| 国产成人亚洲欧美| 91国偷自产一区二区使用方法| 91精品国产一区二区三区蜜臀| 国产精品免费一区二区三区都可以| 国产伦精品一区二区三区高清| 亚洲欧美国产精品桃花| 欧美精品第三页| 色开心亚洲综合| 中文日产幕无线码一区二区| 你懂的在线免费观看| 日韩精品123| 欧美日韩免费网站| 国产伦精品一区二区三区免费| 中文字幕av亚洲精品一部二部| 国产精品麻豆久久| 天堂av资源在线观看| av一级二级| koreanbj精品视频一区| 黄色片在线播放| 啦啦啦在线视频免费观看高清中文| 欧美aⅴ在线观看| 国产精品视频网站在线观看| 免费黄色在线网站| 免费看日b视频| 久久亚洲精品无码va白人极品| 天天爽人人爽夜夜爽| 人妻熟女一二三区夜夜爱| 国产精品一区二区久久国产| 日韩亚洲第一页| 欧美日韩电影在线观看| 欧美日韩视频一区二区| 国产日韩亚洲欧美综合| 激情av综合网| 久久精品毛片| 久久综合国产| 自拍偷拍99| 91免费国产精品| 亚洲人成午夜免电影费观看| 91免费视频大全| 婷婷综合另类小说色区| 亚洲免费av片| 欧美精品在线免费| 欧美自拍偷拍午夜视频| 一区二区视频免费在线观看| 欧美日韩一区二区免费在线观看 | 免费成人你懂的| 国产精品亚洲人成在99www| 一级毛片久久久| 亚洲最大成人| 国产乱论精品| 国产suv精品一区二区883| 国产欧美日韩综合精品一区二区| 亚洲久草在线视频| 欧美日韩国产精品一区二区不卡中文| 欧美日韩久久不卡| 精品国产91乱码一区二区三区 | 亚洲一区中文字幕在线观看| 麻豆91av| 无码精品国产一区二区三区免费| 成人免费高清在线播放| av在线一区不卡| 97成人在线视频| av中文在线资源库| 国产高清在线a视频大全| av中文字幕在线观看| 日韩三级影院| 国产成人久久精品麻豆二区| 国产成人精品一区二区三区视频 | 91小视频免费观看| 亚洲福利天堂| freemovies性欧美| 免费观看国产精品视频| 成人黄色生活片| 日韩中文字幕网| 欧美午夜精品免费| 久久久不卡影院| 久久精品盗摄| 欧美精品系列| 日韩色性视频| 自拍视频在线网| 91美女在线免费观看| 日韩 欧美 自拍| 成人黄色网址在线观看| 亚洲警察之高压线| 欧美人与性动交xxⅹxx| 日本在线视频1区| 国产成人av影视| 手机在线观看国产精品| 亚洲a∨日韩av高清在线观看| 另类图片亚洲另类| 亚洲国产精品专区久久| 欧美日韩视频在线| 国产精品免费免费| 丰满白嫩尤物一区二区| 老司机精品视频网站| 国产精品精品| 国产精品xxx在线观看| 影音成人av| 极品av在线| 国产美女av在线| 亚洲热app| 永久免费不卡在线观看黄网站| 国产激情在线观看视频| 欧美美女视频| 亚洲国产激情av| 国产精品精品视频|