[ LATEST LOG ]

> 最新文章_

4 篇

苟日新,日日新,又日新。每天一篇通俗易懂的编程实战文章,涵盖 Python、Linux、Lua、HTML。

html●

告别手写遮罩层:用原生 dialog 实现弹窗

弹窗几乎是每个 Web 项目都绕不开的组件。过去我们习惯用 div 拼出遮罩层,再写一套 JS 管理 z-index、焦点、ESC 关闭和滚动锁定。代码越写越长,边界情况却总也补不完。

HTML 原生的 <dialog> 元素已经可以承担大部分工作:它会自动进入顶层、隔离背景交互、限制焦点范围,并在关闭后把焦点还给触发元素。本文从一个最小示例出发,逐步补齐表单交互、遮罩点击、样式和可访问性细节。

最小可用示例

先看一个可以直接运行的版本:

[ 查看全文 ]→
linux●
[ 查看全文 ]→
lua●

Lua 元表实战:只读表、默认值与运算符重载

Lua 的表默认只有一种行为:读不存在的键返回 nil,写键直接生效,两个表不能相加。元表(metatable)是 Lua 留下的扩展点,它允许我们挂上一组元方法,改变表在索引、赋值、比较、运算、调用和打印时的表现。很多人把元表当成“高级语法”,其实它更像一张钩子表:只有当默认操作需要额外信息时,Lua 才会去元表里找对应的钩子。

本文示例基于 Lua 5.4,可直接保存为 .lua 文件后用 lua 文件名.lua 运行。

元表基础

每个表最多关联一个元表,元表本身也是表。setmetatable(t, mt) 会返回 t,因此可以嵌套调用;getmetatable(t) 用来取回元表。

[ 查看全文 ]→
python●

异步 IO 入门:从阻塞到 asyncio

写 Python 时,我们常遇到这样的场景:程序大部分时间都在等待网络响应、磁盘读写或数据库查询。如果每个等待都阻塞主线程,CPU 只能干瞪眼。异步 IO 的核心思路就是:在等待期间把执行权交出去,让程序去处理别的任务。

同步、异步与并发

先理清几个容易混淆的概念:

模型特点典型场景
[ 查看全文 ]→