Ender:實(shí)現(xiàn)jQuery風(fēng)格$(document).ready()語法)
前端【免費(fèi)下載鏈接】domreadylets you know when the dom is ready項(xiàng)目地址https://gitcode.com/gh_mirrors/do/domready點(diǎn)擊查看免費(fèi)下載domready 是一個(gè)超小巧的前端庫專門負(fù)責(zé)讓你知道 DOM 何時(shí)加載完畢。本教程帶你用僅 9 行膠水代碼把它集成進(jìn) Ender 框架輕松獲得熟悉的 jQuery 風(fēng)格$(document).ready()語法——簡單、清晰、拿來即用 domready 解決什么問題頁面里的腳本執(zhí)行時(shí)DOM 中位于其后的元素可能還沒被解析出來直接操作就會(huì)報(bào)錯(cuò)。穩(wěn)妥的做法是等 DOM 結(jié)構(gòu)就緒DOMContentLoaded事件觸發(fā)后再運(yùn)行初始化邏輯而不是傻等整個(gè)頁面含圖片加載完成。domready 用約 29 行代碼就做到了這件事domready(function () { // DOM is loaded! })核心實(shí)現(xiàn)見 src/ready.js思路非常經(jīng)典若文檔尚未就緒把回調(diào)壓入隊(duì)列fns并注冊一個(gè)一次性的DOMContentLoaded監(jiān)聽器觸發(fā)后逐個(gè)執(zhí)行隊(duì)列中的回調(diào)隨后立即移除自身若文檔已就緒用setTimeout(fn, 0)將回調(diào)推遲到下一輪事件循環(huán)執(zhí)行避免同步直接調(diào)用帶來的嵌套陷阱。先排隊(duì)、后統(tǒng)一觸發(fā)正是各大框架 ready API 背后的通用套路。9行代碼如何玩轉(zhuǎn) EnderEnder 集成代碼全部位于 src/ender.js一共就 9 行!function ($) { var ready require(domready) $.ender({domReady: ready}) $.ender({ ready: function (f) { ready(f) return this } }, true) }(ender);逐段拆解一下引入依賴require(domready)拿到核心函數(shù)注冊到 $ 上$.ender({domReady: ready})讓你可以直接調(diào)用$.domReady(fn)掛載可鏈?zhǔn)降姆椒ǖ诙€(gè)$.ender的第二個(gè)參數(shù)true表示掛載到$的原型上因此任何選擇器結(jié)果包括$(document)都能調(diào)用.ready(fn)方法體里return this保證了鏈?zhǔn)秸{(diào)用能力。僅僅如此Ender 的$就具備了 jQuery 最標(biāo)志性的寫法$(document).ready(function () { $(body).html(pboosh/p) })還有一個(gè)隱藏細(xì)節(jié)package.json 中聲明了ender: ./src/ender.js。Ender 看到這個(gè)字段后安裝插件時(shí)會(huì)自動(dòng)用它作為入口——也就是說一條ender add domready就自動(dòng)完成集成無需手動(dòng)拼膠水。三步快速上手安裝 Ender 命令行工具npm install ender -g添加 domready 插件ender add domready寫代碼require(domready)(fn)與$(document).ready(fn)任選其一效果完全一致。本地驗(yàn)證效果倉庫自帶一個(gè)開箱即用的演示頁構(gòu)建流程見 Makefilegit clone https://gitcode.com/gh_mirrors/do/domready cd domready npm install make open tests/test.html驗(yàn)證成功時(shí)頁面標(biāo)題會(huì)顯示domready?——二次調(diào)用能正常觸發(fā)證明已加載分支處理無誤演示源碼見 tests/test.html。構(gòu)建產(chǎn)物位于倉庫根目錄的 ready.js及壓縮版 ready.min.js也可獨(dú)立引入自己的項(xiàng)目使用。關(guān)鍵要點(diǎn)小結(jié) domready 用回調(diào)隊(duì)列 DOMContentLoaded 一次性監(jiān)聽實(shí)現(xiàn) DOM 就緒檢測體積只有約 29 行 Ender 集成僅 9 行一次require加兩次$.ender注冊其中return this是可鏈?zhǔn)秸Z法的關(guān)鍵package.json里的ender字段是一條命令完成集成的秘密。有了這套組合輕量級的$就擁有了 jQuery 最受歡迎的部分。下次需要等 DOM 就緒的能力時(shí)不妨優(yōu)先試試它。贊分享前端【免費(fèi)下載鏈接】domreadylets you know when the dom is ready項(xiàng)目地址https://gitcode.com/gh_mirrors/do/domready點(diǎn)擊查看免費(fèi)下載相關(guān)推薦huashu-art-motion 演進(jìn)實(shí)錄從一支復(fù)刻動(dòng)畫到 35 風(fēng)格 × 9 語法的代碼動(dòng)畫 Skillhuashu art motion 演進(jìn)實(shí)錄從一支復(fù)刻動(dòng)畫到 35 風(fēng)格 × 9 語法的代碼動(dòng)畫 Skill huashu art motion 是一套讓 cAI 技能視頻媒體生成QOwnNotes 集成 LanguageTool 實(shí)現(xiàn)語法與風(fēng)格檢查配置、原理與源碼解析QOwnNotes 集成 LanguageTool 實(shí)現(xiàn)語法與風(fēng)格檢查配置、原理與源碼解析 LanguageTool 是一個(gè)開源的語法、風(fēng)格、拼寫與標(biāo)點(diǎn)檢查服桌面應(yīng)用Southstreet輕量DOM庫Shoestring解析幾百行代碼實(shí)現(xiàn)jQuery風(fēng)格API的設(shè)計(jì)取舍Southstreet輕量DOM庫Shoestring解析幾百行代碼實(shí)現(xiàn)jQuery風(fēng)格API的設(shè)計(jì)取舍 在 Filament Group 的漸進(jìn)增強(qiáng)工作流文檔/教程示例工程創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考