-
WebGL是浏览器内置的底层图形API,需手动编写着色器、管理缓冲区和渲染管线;Three.js是其高级封装库,提供Scene、Mesh等语义化对象。纯WebGL灵活轻量但门槛高,Three.js开发快但掩盖细节。
-
CDN选型应优先确保源站Cache-Control可自定义,否则CDN无法缓存;静态资源需显式设置public/max-age/immutable;URL哈希优于查询参数;需验证边缘节点实际覆盖;HTTP/2推送已废弃,改用preload或preconnect。
-
confirm()是最轻量确认方案但会阻塞JS,正确做法是onclick中先confirm再调用删除函数;现代项目应自定义弹窗并确保点击确认才触发删除;服务端必须校验权限、归属及记录日志;删除后需及时更新DOM状态并处理失败反馈。
-
实现响应式卡片布局的关键是使用Flexbox或Grid结合媒体查询。1.Flexbox通过flex-wrap和flex属性实现一维弹性布局,适合简单排列;2.Grid利用grid-template-columns与auto-fit、minmax函数创建自适应二维网格,更灵活高效;3.媒体查询优化不同屏幕下的间距、字体与排列方式;4.图片设为width:100%确保自适应,内容不溢出。推荐优先使用Grid方案,现代浏览器下简洁且适配良好,老旧浏览器可降级使用Flexbox加媒体查询。
-
SharedWorker由JavaScript实例化,非HTML创建;需满足同源、HTTPS/localhost、独立JS文件三大条件,否则构造失败。典型问题包括浏览器不支持、SecurityError、脚本404、跨源加载;页面端须显式调用port.start()才能通信;调试需切换DevTools上下文至shared_worker;共享变量无原子性,需防并发更新。
-
WebSocket需手动实现房间管理与状态同步:用Map存储房间及玩家Set,加入时校验满员并绑定roomId,断连时及时清理;广播仅限目标房间内玩家且排除发送者;位置同步须校验、控频、加时间戳。
-
伪元素下划线hover闪动的根本原因是::after初始未隐藏,导致渲染时先显示默认宽度再缩放;须设width:0+opacity:0,配合完整transition和position:relative定位。
-
答案是使用CSS3的transform、perspective和backface-visibility属性配合HTML结构实现3D卡片翻转。首先创建包含前后两面的card-container容器,通过设置perspective营造3D透视,利用transform-style:preserve-3d保持3D空间,使子元素旋转时不坍缩;.card应用transition实现过渡动画,hover时rotateY(180deg)触发翻转,.front与.back分别设置正背面样式,并用backface-visib
-
Less中url("@{var}/img.png")不生效,因变量需用~"@{var}/img.png"强制插值;路径值须匹配构建工具规则(如Vite用/img,Webpack用../assets/img),且应统一定义于paths.less中导入。
-
响应式系统SSR“注水”报错本质是客户端激活时DOM结构、文本或节点顺序与服务端输出不一致,导致丢弃HTML重渲染;关键在于确保两端渲染结果严格一致,需统一初始数据、隔离请求状态、规避环境敏感逻辑、校验VNode结构。
-
word-break:break-all在Grid中常失效,是因为grid-item默认min-width:auto(近似min-content),优先撑宽容器而非换行;必须同时设置min-width:0、word-break:break-all和明确宽度(如max-width:100%),并确保未被white-space:nowrap覆盖,四者缺一不可。
-
SockJS通过协议协商自动选传输方式:先请求/info获取服务端支持的transports列表,再按优先级依次尝试WebSocket、XHR流、XHR轮询等,全程对业务透明,且自带会话管理、消息确认与自动重连机制。
-
JavaScript通过canvas和ImageData可实现图像处理,需先加载图片、绘制到canvas、用getImageData获取像素数据,遍历修改后putImageData写回;注意跨域、性能及抗锯齿问题。
-
selectonchange事件不生效需检查:函数是否正确定义、是否在DOM加载后绑定、避免重复绑定;内联写法不可访问let变量;应优先用event.target.value获取最新值,联动时需同步清空选项并重置selectedIndex和disabled状态。
-
可直接用Blob实现前端生成并下载复合海报图像:先用Canvas绘制多图层(背景、图片、文字、二维码等),再转为PNG/JPEG数据封装成Blob,最后触发下载,全程无需后端。