新闻详情

新闻详情

首页 / 资讯中心 / 详情

用 URLSearchParams 保存筛选条件:空值、重复键与编码

发布时间:2026/9/27 10:04:52来源:尧图网络
用 URLSearchParams 保存筛选条件:空值、重复键与编码
米米商聊前端学习笔记列表有关键词、多个分类和排序方式时把筛选条件放进网址刷新或分享后才能回到同一视图。容易忽略的是同名参数可能出现多次空值和缺失的含义未必相同空格与加号也有不同的编码结果。本文使用自造地址讨论普通网页做法不代表米米商聊客户端内部实现。先定参数约定本例用 q 保存一个文字关键词kind 可出现多次代表多个分类空关键词不写入网址分类去空白和重复未知参数如 sort 保留。两个纯函数返回新网址或解析后的条件不会改变浏览器地址。exportfunctionsaveFilters(rawUrl,{keyword,kinds[]}{}){consturlnewURL(rawUrl);constparamsurl.searchParams;params.delete(q);params.delete(kind);constqkeyword.trim();if(q)params.set(q,q);constunique[...newSet(kinds.map(String).map(xx.trim()).filter(Boolean))];for(constkindofunique)params.append(kind,kind);returnurl.href;}exportfunctionreadFilters(rawUrl){constparamsnewURL(rawUrl).searchParams;return{keyword:params.get(q)??,kinds:params.getAll(kind).filter(Boolean)};}get(‘kind’) 只返回第一个值getAll(‘kind’) 才取得所有重复键。切换条件前删除旧 q 和 kind避免旧筛选累积。新 URL 保留 sort 的含义但重新序列化时原本写成 %20 的空格可能变成 不能承诺网址字节逐一不变。MDNURLSearchParams空值与编码缺少 q 时get(‘q’) 返回 null存在 q 时返回空字符串。本例把两者都交给界面作为空关键词。如业务要区分“从未设置”和“明确清空”再用 has(‘q’) 判断。MDN 空值示例用户输入交给 set 或 append 即可不要先自行百分号编码。例如输入 AB序列化后会保留加号的原意手工拼接 qAB 却可能把加号读成空格。MDN 加号说明 URLSearchParams 构造器也不解析完整网址因此示例先调用 new URL(rawUrl)。输入必须是合法绝对 URL否则会抛错。MDN 网址解析说明本地验证的边界示例已用 Node.js 内置断言执行十组检查覆盖重复分类、去重、空关键词、覆盖旧条件、保留未知参数、中文、加号、哈希、缺失参数和无效 URL全部通过。测试只验证纯函数没有接入真实搜索服务或浏览器路由接入界面后还应检验刷新、分享、后退和筛选值的对应关系。创作说明本文由AI辅助整理官方资料并起草代码与本地断言由AI编写和执行。示例不是产品源码或实机测试报告。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

驱动能跑却会崩?量产级嵌入式驱动的稳定性攻坚指南 2026/9/27 10:56:53

驱动能跑却会崩?量产级嵌入式驱动的稳定性攻坚指南

在实际的驱动开发项目里,"驱动能跑了"和"驱动没问题了"是两句经常被混为一谈的话。如果你做嵌入式开发的时间够长,一定遇到过我前面描述的那一幕:代码在开发板上调通了,串口输出正常,功能测试全过…

阅读更多 →
群辉做网站服务器python到底多少钱?避坑指南 2026/9/27 10:56:46

群辉做网站服务器python到底多少钱?避坑指南

群辉做网站服务器python到底多少钱?避坑指南 模板网站太丑不够用,想自己用Python搞个服务器部署,到底要花多少钱?这是很多刚入行的东北前端兄弟常问我的问题。别急,咱们今天不整那些虚头巴脑的理论,直接上干货,把成本算得明明白白,让你心…

阅读更多 →
Agilent 53150A微波频率计原理与高精度测量实践 2026/9/27 10:56:46

Agilent 53150A微波频率计原理与高精度测量实践

1. 这台“老将”到底能干啥?——Agilent 53150A不是万能表,但它是频率测量领域的“精密标尺”Agilent 53150A 频率计,这个名字在电子测试实验室里,尤其是做射频、微波、时钟源校准和通信系统验证的工程师嘴里,从来不是…

阅读更多 →
5557连接器选型与供应商对比实战指南 2026/9/27 10:56:46

5557连接器选型与供应商对比实战指南

干硬件和供应链这行,最烦的就是找料。芯片缺、电阻涨价这些还能忍,最容易被忽视的反而是连接器这种不起眼的玩意儿——画原理图的时候它就是一个小方块,等要打样、要量产了才发现,同样写着“5557-2P”,有的厂报价几分钱…

阅读更多 →
Ubuntu 22.04 / 24.04 / 26.04 更换国内阿里源完整教程(区分 DEB822 新 / 旧源格式) 2026/9/27 10:56:46

Ubuntu 22.04 / 24.04 / 26.04 更换国内阿里源完整教程(区分 DEB822 新 / 旧源格式)

前言随着 Ubuntu 版本迭代,APT 软件源配置分为两种格式:传统单行 sources.list 格式与全新 DEB822 标准格式,不同版本配置文件路径、写法完全不同,混用会直接报格式错误。Ubuntu22.04:仅使用 /etc/apt/sources.list 老…

阅读更多 →
wordpress转繁体实测:3个坑点+1套方案,对比评测后省下周薪 2026/9/27 10:56:39

wordpress转繁体实测:3个坑点+1套方案,对比评测后省下周薪

wordpress转繁体实测:3个坑点+1套方案,对比评测后省下周薪 上周给一家做跨境电商的老板修网站,需求很简单:把现有的WordPress站从简体中文转成繁体中文,方便台湾客户浏览。结果建站公司报价5000元,说需要一周时间重新部署。老…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉