@Javascript

Stories List
@fenanjiu

亞像素渲染:瀏覽器如何處理小數像素的渲染?

前言 最近遇到一個這樣的問題,在一些機型上的loading轉圈動畫看起來有點抖,轉起來像個橢圓,心想會不會是這個icon寬高不同造成的,但看了一眼代碼裏面寬高寫的是一樣,按理來説這個loading應該是一個正圓,旋轉起來不應該抖才是的。 比如這樣: div class="w-20px h-20px border-rd-50% loading"/div 寬高相等的一個正圓,旋轉起來看着怪怪的。事實

fenanjiu Avatar

@fenanjiu

Nickname 南玖

@yayu

SvelteKit 最新中文文檔教程(20)—— 最佳實踐之性能

前言 Svelte,一個語法簡潔、入門容易,面向未來的前端框架。 從 Svelte 誕生之初,就備受開發者的喜愛,根據統計,從 2019 年到 2024 年,連續 6 年一直是開發者最感興趣的前端框架 No.1: Svelte 以其獨特的編譯時優化機制著稱,具有輕量級、高性能、易上手等特性,非常適合構建輕量級 Web 項目。 為了幫助大家學習 Svelte,我同時搭建了 Svelte 最新的中文

yayu Avatar

@yayu

Nickname 冴羽

@yayu

SvelteKit 最新中文文檔教程(21)—— 最佳實踐之圖片

前言 Svelte,一個語法簡潔、入門容易,面向未來的前端框架。 從 Svelte 誕生之初,就備受開發者的喜愛,根據統計,從 2019 年到 2024 年,連續 6 年一直是開發者最感興趣的前端框架 No.1: Svelte 以其獨特的編譯時優化機制著稱,具有輕量級、高性能、易上手等特性,非常適合構建輕量級 Web 項目。 為了幫助大家學習 Svelte,我同時搭建了 Svelte 最新的中文

yayu Avatar

@yayu

Nickname 冴羽

@ruochuan12

Taro 源碼揭秘:8. Taro 是如何使用 webpack 打包構建小程序的?

1. 前言 大家好,我是若川,歡迎關注我的公眾號:若川視野。從 2021 年 8 月起,我持續組織了好幾年的每週大家一起學習 200 行左右的源碼共讀活動,感興趣的可以點此掃碼加我微信 ruochuan02 參與。另外,想學源碼,極力推薦關注我寫的專欄《學習源碼整體架構系列》,目前是掘金關注人數(6k+人)第一的專欄,寫有幾十篇源碼文章。 截至目前(2024-11-07),目前最新是 4.0.7,

ruochuan12 Avatar

@ruochuan12

Nickname 若川

@ruochuan12

Taro 源碼揭秘:9. Taro 是如何生成 webpack 配置進行構建小程序的?

1. 前言 大家好,我是若川,歡迎關注我的公眾號:若川視野。從 2021 年 8 月起,我持續組織了好幾年的每週大家一起學習 200 行左右的源碼共讀活動,感興趣的可以點此掃碼加我微信 ruochuan02 參與。另外,想學源碼,極力推薦關注我寫的專欄《學習源碼整體架構系列》,目前是掘金關注人數(6k+人)第一的專欄,寫有幾十篇源碼文章。 截至目前(2024-11-22),目前最新是 4.0.7,

ruochuan12 Avatar

@ruochuan12

Nickname 若川

@ruochuan12

Taro 源碼揭秘:10. Taro 到底是怎樣轉換成小程序文件的?

1. 前言 大家好,我是若川,歡迎關注我的公眾號:若川視野。從 2021 年 8 月起,我持續組織了好幾年的每週大家一起學習 200 行左右的源碼共讀活動,感興趣的可以點此掃碼加我微信 ruochuan02 參與。另外,想學源碼,極力推薦關注我寫的專欄《學習源碼整體架構系列》,目前是掘金關注人數(6k+人)第一的專欄,寫有幾十篇源碼文章。 截至目前(2024-12-26),目前最新是 4.0.8,

ruochuan12 Avatar

@ruochuan12

Nickname 若川

@yayu

SvelteKit 最新中文文檔教程(22)—— 最佳實踐之無障礙與 SEO

前言 Svelte,一個語法簡潔、入門容易,面向未來的前端框架。 從 Svelte 誕生之初,就備受開發者的喜愛,根據統計,從 2019 年到 2024 年,連續 6 年一直是開發者最感興趣的前端框架 No.1: Svelte 以其獨特的編譯時優化機制著稱,具有輕量級、高性能、易上手等特性,非常適合構建輕量級 Web 項目。 為了幫助大家學習 Svelte,我同時搭建了 Svelte 最新的中文

yayu Avatar

@yayu

Nickname 冴羽

@yayu

SvelteKit 最新中文文檔教程(23)—— CLI 使用指南

前言 Svelte,一個語法簡潔、入門容易,面向未來的前端框架。 從 Svelte 誕生之初,就備受開發者的喜愛,根據統計,從 2019 年到 2024 年,連續 6 年一直是開發者最感興趣的前端框架 No.1: Svelte 以其獨特的編譯時優化機制著稱,具有輕量級、高性能、易上手等特性,非常適合構建輕量級 Web 項目。 為了幫助大家學習 Svelte,我同時搭建了 Svelte 最新的中文

yayu Avatar

@yayu

Nickname 冴羽

@xishui_5ac9a340a5484

手寫一個動態海洋和天空效果的vue hooks

背景 常規的後台管理系統登陸頁面可能就只是一個簡單的背景頁面,這不太好看,接下來讓我們來使用three.js來實現一個動態的海洋和天空效果當作背景,這樣的效果總會讓人眼前一亮,如下圖所示。 代碼實現 接下來,讓我們用trae來編寫實現這個功能吧。 1. 組合式 API 初始化 import { onMounted, onBeforeUnmount } from "vue"; import * a

xishui_5ac9a340a5484 Avatar

@xishui_5ac9a340a5484

Nickname 夕水

@carlsonblog

JavaScript WebSocket 封裝與優化:自動重連、心跳機制與連接狀態監控》

背景 在我做過的一個對接海康威視監控實現直播流的項目中,需要處理 WebSocket 的長連接,以便於和服務器保持實時通信。WebSocket 的一個挑戰是連接的穩定性,特別是在網絡波動或斷開時,如何確保能自動重連並保持通信流暢。為了簡化這一過程,我決定封裝一個 WebSocket 類,使得開發者無需每次都重複編寫連接、心跳、重連等邏輯。 這個 CustomSocket 類支持以下功能: 心跳

carlsonblog Avatar

@carlsonblog

Nickname 夢開始的地方

@sy_records

初夏上新!Docsify 迎來 v5.0.0-rc.1 重磅發佈

在中國傳統曆法中,五月初一象徵着初夏的啓程,也寓意着新的成長與蜕變。今天,我們很高興地宣佈 —— Docsify v5.0.0-rc.1 版本發佈! 在延續零構建、即寫即部署理念的同時,Docsify 迎來了全新的樣式設計、更友好的可訪問性以及更穩健的插件機制。 可以通過訪問 http://preview.docsifyjs.org/ 進行體驗。 那麼,這個版本有哪些值得關注的亮點?我們為你準備了

sy_records Avatar

@sy_records

Nickname 沈唁

@aion_6356676d25766

React Router V7 路由守衞

React Router V7 本身並沒有直接提供內置的路由守衞 API(比如 Vue Router 的 beforeEach),但通過組合其提供的鈎子(如 useNavigate、useLocation)和 React 的組件設計模式,我們可以實現類似的功能,比如權限控制、登錄驗證、數據預加載等場景。 路由守衞 路由守衞是指在路由切換時執行一些邏輯,以決定是否允許導航到目標路由。 常見的場景包括

aion_6356676d25766 Avatar

@aion_6356676d25766

Nickname Aion

@yils_lin

第三方Cookie失效時的新解決方案

本文首發於我的博客 YILS's Blog,首發地址:第三方Cookie失效時的新解決方案 (yils.blog) 第三方 Cookie 一直是網絡的重要組成部分,這已持續了 25 年。 然而隨着瀏覽器對隱私保護的加強,為了防止跨站跟蹤,第三方 Cookie 的使用變得越來越受限。即使你已經正確設置了 SameSite=None; Secure;,仍然可能會遇到 Set-Cookie 失效的問題。

yils_lin Avatar

@yils_lin

Nickname YILS_LIN

@yuhuashi_584a46acea21f

webpack優化:提高二次構建速度

痛點: 開發過程中改一行代碼卻要等webpack構建半天實在太捉急。 項目背景 我們的項目是@vue/cli4生成的,基於webpack和vue2開發,未使用ts。用到了很多jquery、lodash、echarts等第三方依賴。 參考: @vue/cli4已經默認配置過一些優化方法了,比如為babel-loader增加cache-loder。請教了deepseek和google之後,根據項目的實

yuhuashi_584a46acea21f Avatar

@yuhuashi_584a46acea21f

Nickname 雨花石

@shuirongshui

使用nodejs的express框架實現大文件上傳的功能,附完整前後端github代碼

問題描述 兩年前,筆者寫過一篇文章 《面試官桀桀一笑:你沒做過大文件上傳功能?那你回去等通知吧!》 當時,後端是用java語言寫的 本篇文章,就是講解一下,後端的nodejs如何實現大文件上傳 後端使用node的express框架寫 完整代碼在github上:https://github.com/shuirongshuifu/bigfile 在看本篇文章之前,建議看一下之前的筆者的大

shuirongshui Avatar

@shuirongshui

Nickname 水冗水孚

@jianer

無感刷新token解決方案

在你的 axios 封裝文件中,你需要兩個外部變量來管理狀態: // 標記是否正在刷新 token 的“鎖” let isRefreshing = false; // 存儲因 token 失效而掛起的請求的“隊列” let requestQueue = []; 請求攔截器 (Request Interceptor) 它的任務很簡單:在每個請求發出去之前,都帶上當前的 token

jianer Avatar

@jianer

Nickname 健兒

@jianer

從一個請求封裝的“死循環”Bug,我學到了什麼?—— 深入剖析 async/await 與錯誤處理 前言:那個讓我頭疼的下午

我們都曾經歷過這樣的下午:一個看似邏輯嚴密的模塊,在實際運行時卻表現得像個失控的野獸。我的故事,就從一個本應“智能”處理登錄和 Token 刷新的 ajax 請求封裝函數開始。 我希望它能在接口返回 400(需要登錄)或 4_01(Token 失效)時,自動完成登錄或刷新 Token,然後再重新發起剛才失敗的請求。然而,它卻在某些情況下陷入了可怕的無限循環,瘋狂轟炸着我的服務器。 起初

jianer Avatar

@jianer

Nickname 健兒