题目
你们的铸造活动要做到「限量、先到先得」。压测时出现了三个问题:用户看到还有库存但提交后失败;用户在等待期间重复点击导致多笔交易;活动开始瞬间页面卡死。
请给出铸造页面的状态设计与并发处理方案。
考察目标
- 能否识别库存展示的时效性问题。
- 是否处理了重复提交与并发峰值。
- 能否给出失败后的用户路径。
考察供应量变化、抢购失败与重复提交三类问题在铸造流程中的处理。
你们的铸造活动要做到「限量、先到先得」。压测时出现了三个问题:用户看到还有库存但提交后失败;用户在等待期间重复点击导致多笔交易;活动开始瞬间页面卡死。
请给出铸造页面的状态设计与并发处理方案。
库存是链上状态,页面数字只是某一时刻的读数;「看到有货」不保证提交成功。等待钱包响应和交易确认时禁用重复入口,并按账户、链与活动记录待处理交易。前端防重只能减少误操作;真正的幂等需要合约提供可识别的操作标识或相应限制。高峰时预加载静态资源、减少非必要轮询,并对售罄、拒绝和交易失败分别给出后续操作。
from 为零地址的 Transfer 事件表示铸造;但合约创建期间铸造的 NFT 可以不发出该事件,不能仅凭日志推断所有历史铸造(依据:EIP-721 §Specification(Events、Transfer))。4001,界面可据此把「已取消」与其他失败区分开(依据:EIP-1193 §Provider Errors)。发现这道题有问题? 反馈此题