在圖文密集的界面裏,長單詞或複合詞一旦撞到容器邊緣,要麼整塊被擠到下一行,要麼被粗暴地從任意位置截斷,這兩種結果都很傷排版。Hyphenation 的目標,就是讓控件在多行換行時,按語言學的音節或詞法規則把單詞切分,並在行尾展示一個連字符,從而兼顧可讀性與版式緊湊度。CSS 把這件事抽象成 hyphens 這樣的屬性,瀏覽器在具備對應語言詞典時就能自動完成;當原生能力不足時,可以用軟連字
在數據庫世界裏,人們動輒提到 schema。很多入門材料把它翻成模式,也有人更願意稱作結構定義或命名空間。為了把這個概念講清楚,需要同時站在三個層面:標準層面、具體產品實現層面,以及工程落地層面。這樣才能看見 schema 如何從一紙藍圖,落實為可見、可管、可遷移的對象集合。 SQL 標準給了一個非常有力的切口。標準把數據庫的結構與約束抽象成了信息架構與定義架構,也就是常説的 Inf
你描述的現象是:從 tab 1 切到 tab 2 時,tab 1 的部分界面被疊加到了 tab 2 上,過幾秒才消失。這類問題表面看像是瀏覽器卡頓,其根因卻可能出現在三層不同的系統裏:應用層 Chrome 的渲染管線、操作系統的桌面合成與顯示疊加路徑、以及顯示設備本身的臨時殘影。弄清楚像素是怎樣從網頁一路流到屏幕,才能對症下藥。 下文分三塊來講:Chrome 如何把像素畫出來、為什麼
你給出的工具函數意在從 Observable 同步抓取一個值: import { Observable } from 'rxjs'; /** * Will grab last synchronously available value from the observable stream * at the time of the call. */ export functi
從工程實現看,能不能關掉瀏覽器裏的流式響應 這件事分成兩層含義: 一層是 網絡層是否流式傳輸,另一層是 UI 層是否逐 token 地把內容渲染到頁面。對普通用户在 ChatGPT 網頁端的使用場景來説,網絡層的流式由服務端與前端產品共同決定,並沒有面向用户的官方開關;也就是説,你在瀏覽器裏沒有一個勾選項可以把 ChatGPT 的網絡流式徹底變成非流式。這個判斷與 OpenA
最近工作遇到一個問題: 從 tab 1 切到 tab 2 時,tab 1 的部分界面被疊加到了 tab 2 上,過幾秒才消失。這類問題表面看像是瀏覽器卡頓,其根因卻可能出現在三層不同的系統裏:應用層 Chrome 的渲染管線、操作系統的桌面合成與顯示疊加路徑、以及顯示設備本身的臨時殘影。弄清楚像素是怎樣從網頁一路流到屏幕,才能對症下藥。 下文分三塊來講:Chrome 如何把像素畫
在計算機軟件設計裏,boundary conditions 通常譯作邊界條件或邊界情形。這個詞並不神秘,它指的是系統輸入、狀態、資源或時間軸上那些臨近極限、容易出錯、但又必須被清晰定義和妥善處理的點。寫程序的人都懂一個樸素經驗:大多數 bug 藏在邊上,而不是在中間。測試領域把這套經驗系統化,發展出邊界值分析,強調沿着輸入域的臨界值去找茬;工程實踐則進一步要求我們在接口、數據結構、併發、