@Javascript

Stories List
@hightopo

圖撲這樣設計高質量可視化大屏

5 大指南塑造高階可視化 5 Guidelines to Shape Advanced Visualization · 可視化是個友好的媒介 · ·理解數據是成為優秀媒介的關鍵 · · 業務驅動下的設計策略· · 圖撲設計的無限可能 · · 創新思維讓可視化更具價值 · 可視化是個友好的媒介 我們正處於一個數據氾濫的時代,隨處可見數據的身影,更知其不可忽視的重要性。企業運營產生的海量數據,若僅停留

hightopo Avatar

@hightopo

Nickname hightopo

@refanbanzhang

當從localStorage中獲取數據時,如何做異常處理?

提出問題 下面的代碼在有初始值的情況下,能夠工作的很好,但是當localStorage中存在非法的數據時就會拋出異常,如果你的程序沒有做好異常處理,就會崩潰。 const todosStr = localStorage.getItem('todos') const todos = JSON.parse(todosStr) 分析問題 能夠拋出異常的位置在JSON.parse,當JSON.parse解

refanbanzhang Avatar

@refanbanzhang

Nickname 熱飯班長

@fenanjiu

【性能監控】如何有效監測網頁靜態資源大小?

前言 作為前端人員肯定經常遇到這樣的場景:需求剛上線,產品拿着手機來找你,為什麼頁面打開這麼慢呀,心想自己開發的時候也有注意性能問題呀,不可能會這麼誇張。那沒辦法只能排查下是哪一塊影響了頁面的整體性能,打開瀏覽器控制枱一看,頁面上的這些配圖每張都非常大,心想這些配圖都這麼大,頁面怎麼快,那麼我們有沒有辦法監測頁面上的這些靜態資源大小,從而避免這種情況的發生。 Performance Perform

fenanjiu Avatar

@fenanjiu

Nickname 南玖

@tanking

Android微信內h5頁面喚起瀏覽器打開頁面的技術分析和實現

摘要 眾所周知,微信是有內置瀏覽器的,方便瀏覽網頁。但是其內核也是經過特殊改造,導致一些默認行為無法觸發。為了實現從微信跳轉到瀏覽器打開頁面,可以説是相當的困難,本次分享的是Android系統的微信在h5頁面調起手機瀏覽器並打開指定頁面的方法。 技術原理 通過二進制文件下載的方法,調起本地瀏覽器下載文件實現喚起瀏覽器。 代碼 使用php的頭文件實現文件下載,告訴瀏覽器這是一個二進制文件流,瀏覽器就

tanking Avatar

@tanking

Nickname TANKING

@tanking

前端發起網絡請求的幾種常見方式(XMLHttpRequest、FetchApi、jQueryAjax、Axios)

摘要 前端發起網絡請求的幾種常見方式包括: XMLHttpRequest (XHR): 這是最傳統和最常見的方式之一。它允許客户端與服務器進行異步通信。XHR API 提供了一個在後台發送 HTTP 請求和接收響應的機制,使得頁面能夠在不刷新的情況下更新部分內容。 Fetch API: Fetch API 是一種新的 Web API,提供了一種更強大、更靈活的方式來發起網絡請求。它使用 Promi

tanking Avatar

@tanking

Nickname TANKING

@shuirongshui

手寫一個簡單的谷歌瀏覽器拓展插件(附github源碼)

前言 閲讀本文,可以自己寫一個簡單的瀏覽器插件 以及前端瀏覽器插件相關東西 附上github源碼:https://github.com/shuirongshuifu/browser-plugin 接下來學學這個不常用的知識點吧... 效果圖 我們先看一下,自己手寫的簡單插件的操作效果圖(點擊彈出時間) 拓展程序部分 或者地址欄輸入:chrome://extensions/ 回

shuirongshui Avatar

@shuirongshui

Nickname 水冗水孚

@icecreamlj

抽絲剝繭:詳述一次DevServer Proxy配置無效問題的細緻排查過程

事情的起因是這樣的,在一個已上線的項目中,其中一個包含登錄和獲取菜單的接口因響應時間較長,後端讓我嘗試未經服務轉發的另一域名下的新接口,舊接口允許跨域請求,但新接口不允許本地訪問(只允許發佈測試/生產的域名訪問)。 問題 那麼問題來了,本地環境該如何成功訪問到新的接口並驗證業務功能是否生效呢? 嘗試過程 我首先就想到了直接在 webpack 項目中配置 devServer,並且修改接口地址

icecreamlj Avatar

@icecreamlj

Nickname 一顆冰淇淋

@dengzhanyong

前端模塊化演變歷程

前端模塊化是指將一個大型的前端應用程序分解為小的、獨立的模塊,每個模塊都有自己的功能和接口,可以被其他模塊使用。 前端模塊化的出現主要是為了解決以下幾個問題: 代碼複用:通過模塊化,可以在多個地方重複使用同一個模塊,而不需要重複編寫相同的代碼。 代碼維護:模塊化後的代碼更加清晰,每個模塊負責的功能明確,便於維護和升級。 依賴管理:模塊化可以很好地處理模塊間的依賴關係,確保模塊使用時其依賴已

dengzhanyong Avatar

@dengzhanyong

Nickname 鄧佔勇

@xpoet

零基礎入門 JavaScript 算法

前言 提及算法,可能會有很多前端同學覺得這是一個距離自己日常工作較遠的領域,認為算法並沒有那麼重要。事實上,這種看法是片面的,算法不僅僅是計算機科學中的一個重要概念,在前端開發中也有着廣泛的應用和巨大的價值。 一個精心設計的算法可以大幅度提高應用的性能和效率,例如:如何在大量數據中快速找到指定信息、如何高效地處理用户輸入、如何在動畫效果中保持流暢的用户體驗、如何讓頁面加載更快、響應更靈敏等等場景,

xpoet Avatar

@xpoet

Nickname XPoet

@hyx

什麼?圖牀又掛了!試試我造的這款免費,穩定,完全自主可控的開源圖牀吧

大家好,我是來自蘇州的祥子,一個90後程序猿,為了實現算命先生的預言——30歲之後財運亨通,雖然我選擇了亨通開發的房產(亨通,本土500強公司),擁有亨通物業的服務,可還缺財運,所以重新撿起技術實現自我救贖。 本文主要介紹我自己造的圖牀輪子,起名叫:喔喔圖牀,之所以重新造輪子,是因為作為一名IT民工,平時喜歡寫一些文檔,博客,並且比較喜歡 Markdown 語法,但一直以來比較困擾的一個問題就是插

hyx Avatar

@hyx

Nickname Chinaxiang

@gqkmiss

JS Navigator.sendBeacon 可靠的、異步地向服務器發送數據

JS Navigator.sendBeacon 可靠的、異步地向服務器發送數據 前言 我們在上一篇頁面訪問頁面關閉數據上報的文章中使用了 sendBeacon 方法用來發送數據,上篇文章是簡單使用,那本篇文章我們就詳細瞭解下這個東西。 一、Navigator.sendBeacon 是什麼能做什麼? Navigator.sendBeacon 是一個用於發送少量數據到服務器的 API,尤其適用於在頁面

gqkmiss Avatar

@gqkmiss

Nickname 月恆

@zero_dev

Hexo最新實戰:(一)Hexo7.0+GitHub Pages博客搭建

前言 很多平台都能寫博客還有創作激勵,為什麼我又要搭一個?為什麼這次要選擇用Hexo框架? 對應的原因是流量自由和省錢,第一個,很多平台能寫但不是都有收益,而且平台有自身的規則,比如會屏蔽一些推廣類信息。如果我哪天做了一產品,是沒辦法直接用平台博客的方式硬推的,至少放碼和鏈接不行。第二個用Hexo搭到GitHub上,我可以不用買服務器,畢竟現在也還沒有想法要做一個什麼樣的東西。 總之,有個獨立博客

zero_dev Avatar

@zero_dev

Nickname 北橋蘇

@rk405264704

記錄動態修改element中el-calendar日曆組件日期的高度

首先看下需求頁面的整體佈局。 頁面分為上下佈局,上邊模塊包含左側日曆和右側導入部分,下邊模塊是數據狀態部分。日曆和導入組件固定高度420px;日曆寬度500px;數據狀態寬度100%,高度自適應。 項目是由vue2+elementui開發,這裏主要説的是日曆的高度如何動態設置? 由於業務需求,日曆只展示當前月份數據,使用css將上個月份和下個月份數據進行隱藏,所以日曆有時是5行數據展示,有

rk405264704 Avatar

@rk405264704

Nickname 留白

@kevinzhw

GraphQL在現代Web應用中的應用與優勢

GraphQL是一種現代的API查詢語言,它在現代Web應用中得到了廣泛的應用,因為它提供了一種高效、靈活且強大的方式來獲取數據 GraphQL基礎快速應用示例: 1. 後端設置(使用graphql-yoga) 首先,我們需要創建一個GraphQL服務器。安裝graphql-yoga並創建一個簡單的GraphQL schema: npm init -y npm install graphql yo

kevinzhw Avatar

@kevinzhw

Nickname 天涯學館

@gqkmiss

Web 頁面性能衡量指標-以用户為中心的性能指標

Web 頁面性能衡量指標-以用户為中心的性能指標 以用户為中心的性能指標是理解和改進站點體驗的關鍵點 一、以用户為中心的性能指標 1. 指標是用來幹啥的? 指標是用來衡量性能和用户體驗的 2. 指標類型 感知加載速度:網頁可以多快地加載網頁中的所有視覺元素並將其渲染到屏幕上 加載響應速度:頁面加載和執行組件快速響應用户互動所需的 JavaScript 代碼的速度 運行時響應速度:網頁在加載

gqkmiss Avatar

@gqkmiss

Nickname 月恆

@gqkmiss

Web 網頁性能及性能優化

Web 網頁性能及性能優化 一、Web 性能 Web 性能是 Web 開發的一個重要方面,側重於網頁加載速度以及對用户輸入的響應速度 通過優化網站來改善性能,可以在為用户提供更好的體驗 網頁性能既廣泛又非常深入 1. 為什麼性能這麼重要? 1. 性能關乎留住用户 性能對於任何在線業務都至關重要 與加載速度緩慢、讓人感覺運行緩慢的網站相比,加載速度快並能及時響應用户輸入的網站能更好地吸引並留住用户

gqkmiss Avatar

@gqkmiss

Nickname 月恆

@huobaodejianpan

深入淺出: XML HttpRequest 入門指南

XML HttpRequest(XHR) 技術是構建動態、響應式網站的關鍵。這項技術使得網頁能在不重新加載整個頁面的情況下與服務器進行數據交互,極大地優化了用户的交互體驗。 定義 XML HttpRequest XML HttpRequest 是一種瀏覽器與服務器進行數據交換的 API。儘管它的名字包含 “XML”,XHR 實際上支持多種數據格式,如 JSON、HTML 和純文本等。初期,它主要用

huobaodejianpan Avatar

@huobaodejianpan

Nickname 火爆的鍵盤

@kevinzhw

Nuxt.js實戰:Vue.js的服務器端渲染框架

創建Nuxt.js項目 首先,確保你已經安裝了Node.js和yarn或npm。然後,通過命令行創建一個新的Nuxt.js項目: yarn create nuxt-app my-nuxt-project cd my-nuxt-project 在創建過程中,你可以選擇是否需要UI框架、預處理器等選項,根據需要配置。 目錄結構 Nuxt.js遵循特定的目錄結構,其中一些關鍵目錄如下: ├── .nux

kevinzhw Avatar

@kevinzhw

Nickname 天涯學館

@littlelyon

使用 AST 遷移複雜前端項目的探索

寫在前面 也不知道為什麼,每一次工作變動,所接手的第一個項目,都和項目遷移有關。這次也不例外,在 5 月初入職樂天之後,處理完雜七雜八的事情,第一個接手的項目是將一個大概有 5 年開發週期的 nuxt 2 前端項目,遷移到 nuxt 3 版本。 項目遷移與“屎山” 談及項目遷移,尤其是複雜項目,很容易讓人把它和“屎山”聯繫起來,而事實上也是如此,大多數規模較大的項目,往往都具備“屎山”的各種特徵,

littlelyon Avatar

@littlelyon

Nickname littlelyon

@kevinzhw

前端安全:XSS攻擊與防禦策略

XSS(Cross-Site Scripting)攻擊是前端安全中的一個重要問題,它發生在攻擊者能夠注入惡意腳本到網頁中,這些腳本在用户瀏覽器中執行時可以獲取用户的敏感信息,例如會話令牌、個人信息等。防禦XSS攻擊通常涉及以下幾個策略: 1. 輸入驗證: 對用户提交的數據進行嚴格的驗證,確保只有預期的字符和格式被接受。 使用正則表達式或預定義的白名單模式來過濾無效字符。 限制字符串長度以防

kevinzhw Avatar

@kevinzhw

Nickname 天涯學館

@kevinzhw

前端工程化實踐:Monorepo與Lerna管理

前端工程化實踐中,Monorepo(單倉庫)管理和Lerna是兩種流行的方式,用於大型項目或組件庫的組織和版本管理。 Monorepo簡介 Monorepo(單倉庫)是指在一個Git倉庫中管理多個相關項目的開發方式。這種方式的優點在於: 集中式管理:所有項目都在一個倉庫中,方便代碼共享、版本同步和協同開發。 模塊化:可以創建獨立的模塊,方便複用和維護。 統一的CI/CD:一次配置,全倉

kevinzhw Avatar

@kevinzhw

Nickname 天涯學館