当前位置:首页 > 文章列表 > 文章 > 前端 > HTML5WebSQL存XML关键步骤解析

HTML5WebSQL存XML关键步骤解析

2026-01-31 21:03:53 0浏览 收藏

学习知识要善于思考,思考,再思考!今天golang学习网小编就给大家带来《HTML5 WebSQL存XML实现要点汇总》,以下内容主要包含等知识点,如果你正在学习或准备学习文章,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

Web SQL 不支持 XML 类型字段,XML 仅作 TEXT 存储且无结构校验;存前需 DOMParser+XMLSerializer 转义,查后需重新解析;推荐改用 JSON、IndexedDB 或服务端解析。

html5websql存xml_结合数据库存储xml记录的实现要点【汇总】

Web SQL 不支持直接存储 XML 类型字段

Web SQL 是基于 SQLite 的客户端数据库,它没有 XML 数据类型,所有数据都按 TEXTINTEGERREALBLOB 等 SQLite 原生类型处理。你存的 XML 实际上只是字符串——哪怕内容是格式良好的 Alice,数据库也完全不校验合法性或结构。

这意味着:

  • 必须手动确保 XML 字符串合法(比如转义 <>& 等,或用 DOMParser + XMLSerializer 预处理)
  • 无法用 SQL 查询 XML 内部节点(例如不能写 SELECT * FROM docs WHERE xml LIKE '%active%' —— 这种模糊匹配极不可靠,且无法利用索引)
  • 大 XML 文本可能触发 Web SQL 的单条语句长度限制(尤其在旧版 Safari/iOS 中,executeSql 对参数长度敏感)

存 XML 前必须做字符转义或序列化封装

直接把原始 XML 字符串传给 INSERT 会出问题:如果 XML 含单引号(')、双引号(")或未转义的 &,会导致 SQL 语法错误或注入风险。不要拼接 SQL 字符串。

正确做法是使用参数化查询,并确保输入已是安全字符串:

  • 若 XML 来自用户输入或外部接口,先用 DOMParser 解析再用 XMLSerializer 序列化,可自动处理转义:
    const parser = new DOMParser();
    const doc = parser.parseFromString(userInput, 'application/xml');
    if (doc.documentElement.nodeName === 'parsererror') throw new Error('Invalid XML');
    const serializer = new XMLSerializer();
    const safeXml = serializer.serializeToString(doc);
  • 若 XML 已是字符串且确定结构简单,可用正则或 String.replace() 手动转义(仅作备用):
    xmlStr.replace(/&/g, '&').replace(/, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, ''');
  • 插入时严格使用 ? 占位符:
    tx.executeSql('INSERT INTO xml_docs (id, content, created) VALUES (?, ?, ?)', [id, safeXml, Date.now()]);

查 XML 后需重新解析才能操作节点

从 Web SQL 读出的 XML 是纯 TEXT 字段值,不是 DOM 对象。想取 </code> 或判断 <code><status></code> 是否为 <code>done</code>,必须手动解析:</p><ul><li>用 <code>DOMParser</code> 是最兼容的方式(所有现代浏览器支持):<pre class="brush:php;toolbar:false">const parser = new DOMParser(); const xmlDoc = parser.parseFromString(row.content, 'application/xml'); if (xmlDoc.querySelector('parsererror')) { console.error('XML parse error in record', row.id); } else { const title = xmlDoc.querySelector('title')?.textContent; }</pre></li><li>避免用 <code>innerHTML</code> 或 <code>eval</code> 处理 XML 字符串——既不安全,也无法保证命名空间或 CDATA 正确处理</li><li>注意:<code>parseFromString</code> 第二个参数必须是 <code>'application/xml'</code>(不是 <code>text/xml</code> 或空字符串),否则某些浏览器(如旧 Edge)会降级为 HTML 解析,破坏 XML 语义</li></ul><h3>替代方案比硬存 XML 更可靠</h3><p>除非业务强依赖 XML 格式(如对接遗留 SOAP 接口、需保留注释/命名空间/CDATA),否则应优先考虑其他方式:</p><ul><li>存为 JSON:前端天然支持 <code>JSON.parse()</code>/<code>JSON.stringify()</code>,体积更小,查询字段可拆到独立列(如 <code>status TEXT</code>, <code>updated INTEGER</code>),支持索引和 WHERE 条件</li><li>用 IndexedDB 存 Blob:对超大 XML(>5MB),Web SQL 易达上限;IndexedDB 支持原生 <code>Blob</code> 存储,且无同源 SQL 大小限制</li><li>服务端代理解析:把 XML 解析逻辑放到后端,前端只存结构化字段,规避所有客户端 XML 处理陷阱</li></ul><p>Web SQL 本身已是废弃标准(Chrome 123+ 移除,Safari 仍支持但无更新),现在还用它存 XML,等于在技术债上叠技术债——真正难的从来不是“怎么存”,而是“以后怎么安全、高效地读和改”。</p><p>本篇关于《HTML5WebSQL存XML关键步骤解析》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于文章的相关知识,请关注golang学习网公众号!</p> </div> <div class="labsList"> </div> <div class="cateBox"> <div class="cateItem"> <a href="/article/479591.html" title="Golang配置与环境变量结合使用方法" class="img_box"> <img src="/uploads/20260131/1769864555697dfd6be9b9d.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="Golang配置与环境变量结合使用方法">Golang配置与环境变量结合使用方法 </a> <dl> <dt class="lineOverflow"><a href="/article/479591.html" title="Golang配置与环境变量结合使用方法" class="aBlack">上一篇<i></i></a></dt> <dd class="lineTwoOverflow">Golang配置与环境变量结合使用方法</dd> </dl> </div> <div class="cateItem"> <a href="/article/479593.html" title="学堂云网页版入口快速访问" class="img_box"> <img src="/uploads/20260131/1769864631697dfdb7d3fe7.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="学堂云网页版入口快速访问"> </a> <dl> <dt class="lineOverflow"><a href="/article/479593.html" class="aBlack" title="学堂云网页版入口快速访问">下一篇<i></i></a></dt> <dd class="lineTwoOverflow">学堂云网页版入口快速访问</dd> </dl> </div> </div> </div> </div> <div class="leftContBox pt0"> <div class="pdl20"> <div class="contTit"> <a href="/articlelist.html" class="more" title="查看更多">查看更多<i class="iconfont"></i></a> <div class="tit">最新文章</div> </div> </div> <ul class="newArticleList"> <li> <div class="contBox"> <a href="/article/628200.html" class="img_box" title="Service Worker缓存版本切换与旧缓存清理流程"> <img src="/uploads/20260923/1790140549-25a41c8fd9-d95ec10195-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="Service Worker缓存版本切换与旧缓存清理流程"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  1天前  |   <a href="/articletag/243_new_0_1.html" class="aLightGray" title="前端">前端</a> · <a href="/articletag/322_new_0_1.html" class="aLightGray" title="缓存">缓存</a> · <a href="javascript:;" class="aLightGray" title="Service Worker">Service Worker</a> <a href="javascript:;" class="aLightGray" title="CacheStorage">CacheStorage</a> <a href="javascript:;" class="aLightGray" title="缓存版本">缓存版本</a> <a href="javascript:;" class="aLightGray" title="activate">activate</a> </span> </dd> <dt class="lineOverflow"> <a href="/article/628200.html" class="aBlack" target="_blank" title="Service Worker缓存版本切换与旧缓存清理流程">Service Worker缓存版本切换与旧缓存清理流程</a> </dt> <dd class="cont2"> <span><i class="view"></i>490浏览</span> <span class="collectBtn user_collection" data-id="628200" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/628178.html" class="img_box" title="WebSocket断线重连与消息去重的客户端设计"> <img src="/uploads/20260923/1790140202-06b2989837-17225fc693-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="WebSocket断线重连与消息去重的客户端设计"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  1天前  |   <a href="/articletag/243_new_0_1.html" class="aLightGray" title="前端">前端</a> · <a href="/articletag/1017_new_0_1.html" class="aLightGray" title="websocket">websocket</a> · <a href="/articletag/4701_new_0_1.html" class="aLightGray" title="javascript">javascript</a> · <a href="javascript:;" class="aLightGray" title="websocket">websocket</a> <a href="javascript:;" class="aLightGray" title="消息去重">消息去重</a> <a href="javascript:;" class="aLightGray" title="幂等键">幂等键</a> <a href="javascript:;" class="aLightGray" title="断线重连">断线重连</a> <a href="javascript:;" class="aLightGray" title="前端实时通信">前端实时通信</a> </span> </dd> <dt class="lineOverflow"> <a href="/article/628178.html" class="aBlack" target="_blank" title="WebSocket断线重连与消息去重的客户端设计">WebSocket断线重连与消息去重的客户端设计</a> </dt> <dd class="cont2"> <span><i class="view"></i>171浏览</span> <span class="collectBtn user_collection" data-id="628178" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/628150.html" class="img_box" title="View Transitions在路由切换中保留关键元素连续性"> <img src="/uploads/20260920/1789891543-f08363fbbe-501ddfc9a1-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="View Transitions在路由切换中保留关键元素连续性"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  4天前  |   </span> </dd> <dt class="lineOverflow"> <a href="/article/628150.html" class="aBlack" target="_blank" title="View Transitions在路由切换中保留关键元素连续性">View Transitions在路由切换中保留关键元素连续性</a> </dt> <dd class="cont2"> <span><i class="view"></i>305浏览</span> <span class="collectBtn user_collection" data-id="628150" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/628120.html" class="img_box" title="CSS :has选择器实现父级状态样式的边界"> <img src="/uploads/20260920/1789887231-100eb4e555-96fea0da39-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="CSS :has选择器实现父级状态样式的边界"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  4天前  |   </span> </dd> <dt class="lineOverflow"> <a href="/article/628120.html" class="aBlack" target="_blank" title="CSS :has选择器实现父级状态样式的边界">CSS :has选择器实现父级状态样式的边界</a> </dt> <dd class="cont2"> <span><i class="view"></i>252浏览</span> <span class="collectBtn user_collection" data-id="628120" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/628089.html" class="img_box" title="CSS container queries按组件宽度适配卡片布局"> <img src="/uploads/20260920/1789882935-6659da4c66-1431b13c79-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="CSS container queries按组件宽度适配卡片布局"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  4天前  |   </span> </dd> <dt class="lineOverflow"> <a href="/article/628089.html" class="aBlack" target="_blank" title="CSS container queries按组件宽度适配卡片布局">CSS container queries按组件宽度适配卡片布局</a> </dt> <dd class="cont2"> <span><i class="view"></i>367浏览</span> <span class="collectBtn user_collection" data-id="628089" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/628059.html" class="img_box" title="Web Worker传递大数组时选择Transferable降低复制"> <img src="/uploads/20260920/1789878808-55648ba039-36ee2c10e7-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="Web Worker传递大数组时选择Transferable降低复制"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  4天前  |   <a href="/articletag/243_new_0_1.html" class="aLightGray" title="前端">前端</a> · <a href="/articletag/729_new_0_1.html" class="aLightGray" title="性能优化">性能优化</a> · <a href="/articletag/4701_new_0_1.html" class="aLightGray" title="javascript">javascript</a> · <a href="javascript:;" class="aLightGray" title="ArrayBuffer">ArrayBuffer</a> <a href="javascript:;" class="aLightGray" title="postMessage">postMessage</a> <a href="javascript:;" class="aLightGray" title="TypedArray">TypedArray</a> <a href="javascript:;" class="aLightGray" title="结构化克隆">结构化克隆</a> <a href="javascript:;" class="aLightGray" title="Web Worker">Web Worker</a> <a href="javascript:;" class="aLightGray" title="Transferable">Transferable</a> </span> </dd> <dt class="lineOverflow"> <a href="/article/628059.html" class="aBlack" target="_blank" title="Web Worker传递大数组时选择Transferable降低复制">Web Worker传递大数组时选择Transferable降低复制</a> </dt> <dd class="cont2"> <span><i class="view"></i>140浏览</span> <span class="collectBtn user_collection" data-id="628059" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/628028.html" class="img_box" title="IndexedDB事务生命周期内完成读写操作的结构"> <img src="/uploads/20260920/1789874291-b10cb47611-eecd0fcb18-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="IndexedDB事务生命周期内完成读写操作的结构"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  4天前  |   </span> </dd> <dt class="lineOverflow"> <a href="/article/628028.html" class="aBlack" target="_blank" title="IndexedDB事务生命周期内完成读写操作的结构">IndexedDB事务生命周期内完成读写操作的结构</a> </dt> <dd class="cont2"> <span><i class="view"></i>176浏览</span> <span class="collectBtn user_collection" data-id="628028" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/627997.html" class="img_box" title="AbortController取消搜索请求并避免旧结果覆盖新结果"> <img src="/uploads/20260920/1789869821-0e37215aba-ab792c5a0e-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="AbortController取消搜索请求并避免旧结果覆盖新结果"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  4天前  |   <a href="/articletag/243_new_0_1.html" class="aLightGray" title="前端">前端</a> · <a href="/articletag/4701_new_0_1.html" class="aLightGray" title="javascript">javascript</a> · <a href="javascript:;" class="aLightGray" title="Fetch">Fetch</a> <a href="javascript:;" class="aLightGray" title="AbortController">AbortController</a> <a href="javascript:;" class="aLightGray" title="AbortSignal">AbortSignal</a> <a href="javascript:;" class="aLightGray" title="前端请求取消">前端请求取消</a> </span> </dd> <dt class="lineOverflow"> <a href="/article/627997.html" class="aBlack" target="_blank" title="AbortController取消搜索请求并避免旧结果覆盖新结果">AbortController取消搜索请求并避免旧结果覆盖新结果</a> </dt> <dd class="cont2"> <span><i class="view"></i>242浏览</span> <span class="collectBtn user_collection" data-id="627997" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/627967.html" class="img_box" title="Fetch API流式读取响应并显示下载进度的实现"> <img src="/uploads/20260920/1789865313-698c93d65e-b14345459b-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="Fetch API流式读取响应并显示下载进度的实现"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  4天前  |   </span> </dd> <dt class="lineOverflow"> <a href="/article/627967.html" class="aBlack" target="_blank" title="Fetch API流式读取响应并显示下载进度的实现">Fetch API流式读取响应并显示下载进度的实现</a> </dt> <dd class="cont2"> <span><i class="view"></i>359浏览</span> <span class="collectBtn user_collection" data-id="627967" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/627917.html" class="img_box" title="Web Storage处理 localStorage 配额异常的实现方法"> <img src="/uploads/20260920/1789856759-991da8bced-b452ebf7b8-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="Web Storage处理 localStorage 配额异常的实现方法"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  4天前  |   <a href="javascript:;" class="aLightGray" title="localStorage">localStorage</a> <a href="javascript:;" class="aLightGray" title="前端存储">前端存储</a> <a href="javascript:;" class="aLightGray" title="Web Storage">Web Storage</a> <a href="javascript:;" class="aLightGray" title="配额异常">配额异常</a> </span> </dd> <dt class="lineOverflow"> <a href="/article/627917.html" class="aBlack" target="_blank" title="Web Storage处理 localStorage 配额异常的实现方法">Web Storage处理 localStorage 配额异常的实现方法</a> </dt> <dd class="cont2"> <span><i class="view"></i>308浏览</span> <span class="collectBtn user_collection" data-id="627917" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/627886.html" class="img_box" title="Web Accessibility保留键盘焦点而不干扰鼠标样式的实现方法"> <img src="/uploads/20260920/1789852561-82d8259f49-2fadfe26f2-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="Web Accessibility保留键盘焦点而不干扰鼠标样式的实现方法"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  4天前  |   <a href="/articletag/243_new_0_1.html" class="aLightGray" title="前端">前端</a> · <a href="/articletag/4729_new_0_1.html" class="aLightGray" title="css">css</a> · <a href="javascript:;" class="aLightGray" title="CSS">CSS</a> <a href="javascript:;" class="aLightGray" title=":focus-visible">:focus-visible</a> <a href="javascript:;" class="aLightGray" title="键盘焦点">键盘焦点</a> <a href="javascript:;" class="aLightGray" title="Web Accessibility">Web Accessibility</a> </span> </dd> <dt class="lineOverflow"> <a href="/article/627886.html" class="aBlack" target="_blank" title="Web Accessibility保留键盘焦点而不干扰鼠标样式的实现方法">Web Accessibility保留键盘焦点而不干扰鼠标样式的实现方法</a> </dt> <dd class="cont2"> <span><i class="view"></i>143浏览</span> <span class="collectBtn user_collection" data-id="627886" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/627853.html" class="img_box" title="ResizeObserver避免尺寸回调触发布局循环的实现方法"> <img src="/uploads/20260920/1789847083-552e4764fb-fcd949305e-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="ResizeObserver避免尺寸回调触发布局循环的实现方法"> </a> <dl> <dd class="cont1"> <span> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  4天前  |   </span> </dd> <dt class="lineOverflow"> <a href="/article/627853.html" class="aBlack" target="_blank" title="ResizeObserver避免尺寸回调触发布局循环的实现方法">ResizeObserver避免尺寸回调触发布局循环的实现方法</a> </dt> <dd class="cont2"> <span><i class="view"></i>209浏览</span> <span class="collectBtn user_collection" data-id="627853" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> </ul> </div> </div> <div class="mainRight"> <!-- 右侧广告位banner --> <div class="rightContBox" style="margin-top: 0px;"> <div class="rightTit"> <a href="/courselist.html" class="more" title="查看更多">查看更多<i class="iconfont"></i></a> <div class="tit lineOverflow">课程推荐</div> </div> <ul class="lessonRecomRList"> <li> <a href="/course/9.html" class="img_box" target="_blank" title="前端进阶之JavaScript设计模式"> <img src="/uploads/20221222/52fd0f23a454c71029c2c72d206ed815.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="前端进阶之JavaScript设计模式"> </a> <dl> <dt class="lineTwoOverflow"><a href="/course/9.html" target="_blank" class="aBlack" title="前端进阶之JavaScript设计模式">前端进阶之JavaScript设计模式</a></dt> <dd class="cont1 lineTwoOverflow"> 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。 </dd> <dd class="cont2">543次学习</dd> </dl> </li> <li> <a href="/course/2.html" class="img_box" target="_blank" title="GO语言核心编程课程"> <img src="/uploads/20221221/634ad7404159bfefc6a54a564d437b5f.png" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="GO语言核心编程课程"> </a> <dl> <dt class="lineTwoOverflow"><a href="/course/2.html" target="_blank" class="aBlack" title="GO语言核心编程课程">GO语言核心编程课程</a></dt> <dd class="cont1 lineTwoOverflow"> 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。 </dd> <dd class="cont2">516次学习</dd> </dl> </li> <li> <a href="/course/74.html" class="img_box" target="_blank" title="简单聊聊mysql8与网络通信"> <img src="/uploads/20240103/bad35fe14edbd214bee16f88343ac57c.png" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="简单聊聊mysql8与网络通信"> </a> <dl> <dt class="lineTwoOverflow"><a href="/course/74.html" target="_blank" class="aBlack" title="简单聊聊mysql8与网络通信">简单聊聊mysql8与网络通信</a></dt> <dd class="cont1 lineTwoOverflow"> 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让 </dd> <dd class="cont2">500次学习</dd> </dl> </li> <li> <a href="/course/57.html" class="img_box" target="_blank" title="JavaScript正则表达式基础与实战"> <img src="/uploads/20221226/bbe4083bb3cb0dd135fb02c31c3785fb.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="JavaScript正则表达式基础与实战"> </a> <dl> <dt class="lineTwoOverflow"><a href="/course/57.html" target="_blank" class="aBlack" title="JavaScript正则表达式基础与实战">JavaScript正则表达式基础与实战</a></dt> <dd class="cont1 lineTwoOverflow"> 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。 </dd> <dd class="cont2">487次学习</dd> </dl> </li> <li> <a href="/course/28.html" class="img_box" target="_blank" title="从零制作响应式网站—Grid布局"> <img src="/uploads/20221223/ac110f88206daeab6c0cf38ebf5fe9ed.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="从零制作响应式网站—Grid布局"> </a> <dl> <dt class="lineTwoOverflow"><a href="/course/28.html" target="_blank" class="aBlack" title="从零制作响应式网站—Grid布局">从零制作响应式网站—Grid布局</a></dt> <dd class="cont1 lineTwoOverflow"> 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。 </dd> <dd class="cont2">485次学习</dd> </dl> </li> </ul> </div> <div class="rightContBox"> <div class="rightTit"> <a href="/ai.html" class="more" title="查看更多">查看更多<i class="iconfont"></i></a> <div class="tit lineOverflow">AI推荐</div> </div> <ul class="lessonRecomRList"> <li> <a href="/ai/13900.html" target="_blank" title="PubMedQA数据集详解:生物医学问答基准、功能与应用指南" class="img_box"> <img src="/uploads/20260908/6a9f83280940e7.65575695.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="PubMedQA数据集详解:生物医学问答基准、功能与应用指南" style="object-fit:cover;width:100%;height:100%;"> </a> <dl> <dt class="lineTwoOverflow"><a href="/ai/13900.html" class="aBlack" target="_blank" title="PubMedQA">PubMedQA</a></dt> <dd class="cont1 lineTwoOverflow"> 深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。 </dd> <dd class="cont2">201次使用</dd> </dl> </li> <li> <a href="/ai/13899.html" target="_blank" title="H2O EvalGPT:开源LLM大模型评估与排行榜工具" class="img_box"> <img src="/uploads/20260908/17887986376a9ee6adaf3f5.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="H2O EvalGPT:开源LLM大模型评估与排行榜工具" style="object-fit:cover;width:100%;height:100%;"> </a> <dl> <dt class="lineTwoOverflow"><a href="/ai/13899.html" class="aBlack" target="_blank" title="H2O EvalGPT">H2O EvalGPT</a></dt> <dd class="cont1 lineTwoOverflow"> H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。 </dd> <dd class="cont2">256次使用</dd> </dl> </li> <li> <a href="/ai/13898.html" target="_blank" title="LMArena是什么?伯克利AI模型评估平台使用指南与功能解析" class="img_box"> <img src="/uploads/20260908/6a9f862dbcfec7.27385604.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="LMArena是什么?伯克利AI模型评估平台使用指南与功能解析" style="object-fit:cover;width:100%;height:100%;"> </a> <dl> <dt class="lineTwoOverflow"><a href="/ai/13898.html" class="aBlack" target="_blank" title="LMArena">LMArena</a></dt> <dd class="cont1 lineTwoOverflow"> LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。 </dd> <dd class="cont2">209次使用</dd> </dl> </li> <li> <a href="/ai/13897.html" target="_blank" title="斯坦福HELM:大语言模型Holistic Evaluation整体评估框架详解" class="img_box"> <img src="/uploads/20260908/6a9f86b31ed789.06773114.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="斯坦福HELM:大语言模型Holistic Evaluation整体评估框架详解" style="object-fit:cover;width:100%;height:100%;"> </a> <dl> <dt class="lineTwoOverflow"><a href="/ai/13897.html" class="aBlack" target="_blank" title="HELM">HELM</a></dt> <dd class="cont1 lineTwoOverflow"> 深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。 </dd> <dd class="cont2">199次使用</dd> </dl> </li> <li> <a href="/ai/13895.html" target="_blank" title="CMMLU中文大模型评估基准:功能、使用教程与应用场景解析" class="img_box"> <img src="/uploads/20260908/6a9f86da34b3c3.73649809.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="CMMLU中文大模型评估基准:功能、使用教程与应用场景解析" style="object-fit:cover;width:100%;height:100%;"> </a> <dl> <dt class="lineTwoOverflow"><a href="/ai/13895.html" class="aBlack" target="_blank" title="CMMLU">CMMLU</a></dt> <dd class="cont1 lineTwoOverflow"> 深入了解CMMLU中文评估基准,涵盖67个学科主题,提供数据集下载、Zero-shot/Five-shot评估方法及排行榜,助力优化中文语言模型性能。 </dd> <dd class="cont2">185次使用</dd> </dl> </li> </ul> </div> <!-- 相关文章 --> <div class="rightContBox"> <div class="rightTit"> <a href="/articlelist.html" class="more" title="查看更多">查看更多<i class="iconfont"></i></a> <div class="tit lineOverflow">相关文章</div> </div> <ul class="aboutArticleRList"> <li> <dl> <dt class="lineTwoOverflow"><a href="/article/207000.html" class="aBlack" title="JavaScript函数定义及示例详解">JavaScript函数定义及示例详解</a></dt> <dd> <span class="left">2025-05-11</span> <span class="right">502浏览</span> </dd> </dl> </li> <li> <dl> <dt class="lineTwoOverflow"><a href="/article/621422.html" class="aBlack" title="智能体安全引领产业升级——国内AI安全产品市场深度分析">智能体安全引领产业升级——国内AI安全产品市场深度分析</a></dt> <dd> <span class="left">2026-08-21</span> <span class="right">501浏览</span> </dd> </dl> </li> <li> <dl> <dt class="lineTwoOverflow"><a href="/article/619053.html" class="aBlack" title="CSS变量简化按钮悬停效果技巧">CSS变量简化按钮悬停效果技巧</a></dt> <dd> <span class="left">2026-05-31</span> <span class="right">501浏览</span> </dd> </dl> </li> <li> <dl> <dt class="lineTwoOverflow"><a href="/article/618916.html" class="aBlack" title="JavaScript符号类型详解与应用">JavaScript符号类型详解与应用</a></dt> <dd> <span class="left">2026-05-31</span> <span class="right">501浏览</span> </dd> </dl> </li> <li> <dl> <dt class="lineTwoOverflow"><a href="/article/612539.html" class="aBlack" title="HTML剪贴板复制粘贴怎么用">HTML剪贴板复制粘贴怎么用</a></dt> <dd> <span class="left">2026-05-26</span> <span class="right">501浏览</span> </dd> </dl> </li> </ul> </div> </div> </div> <div class="footer"> <div class="footerIn"> <div class="footLeft"> <div class="linkBox"> <a href="/about/1.html" target="_blank" class="aBlack" title="关于我们">关于我们</a> <a href="/about/5.html" target="_blank" class="aBlack" title="免责声明">免责声明</a> <a href="#" class="aBlack" title="意见反馈">意见反馈</a> <a href="/about/2.html" class="aBlack" target="_blank" title="联系我们">联系我们</a> <a href="/send.html" class="aBlack" title="广告合作">内容提交</a> <a href="/manual/go/" target="_blank" class="aBlack" title="手册">手册</a> </div> <div class="footTip">Golang学习网:公益在线Go学习平台,帮助Go学习者快速成长!</div> <div class="shareBox"> <span><i class="qq"></i>技术交流群</span> </div> <div class="copyRight"> Copyright 2023 http://www.17golang.com/ All Rights Reserved | <a href="https://beian.miit.gov.cn/" target="_blank" title="备案">湘ICP备19018815号-4</a> </div> </div> <div class="footRight"> <ul class="encodeList"> <li> <div class="encodeImg"> <img src="/assets/examples/qrcode_for_gh.jpg" alt="Golang学习网"> </div> <div class="tit">关注公众号</div> <div class="tip">Golang学习网</div> </li> <div class="clear"></div> </ul> </div> <div class="clear"></div> </div> </div> <!-- 微信登录弹窗 --> <style> .popupBg .n-error{ color: red; } </style> <div class="popupBg"> <div class="loginBoxBox"> <div class="imgbg"> <img src="/assets/images/leftlogo.jpg" alt=""> </div> <!-- 微信登录 --> <div class="loginInfo encodeLogin" style="display: none;"> <div class="closeIcon" onclick="$('.popupBg').hide();"></div> <div class="changeLoginType cursorPointer create_wxqrcode" onclick="$('.loginInfo').hide();$('.passwordLogin').show();"> <div class="tip">密码登录在这里</div> </div> <div class="encodeInfo"> <div class="tit"><i></i> 微信扫码登录或注册</div> <div class="encodeImg"> <span id="wx_login_qrcode"><img src="/assets/examples/code.png" alt="二维码"></span> <!-- <div class="refreshBox"> <p>二维码失效</p> <button type="button" class="create_wxqrcode">刷新1111</button> </div> --> </div> <div class="tip">打开微信扫一扫,快速登录/注册</div> </div> <div class="beforeLoginTip">登录即同意 <a href="#" class="aBlue" title="用户协议">用户协议</a> 和 <a href="#" class="aBlue" title="隐私政策">隐私政策</a></div> </div> <!-- 密码登录 --> <div class="loginInfo passwordLogin"> <div class="closeIcon" onclick="$('.popupBg').hide();"></div> <div class="changeLoginType cursorPointer create_wxqrcode" onclick="$('.loginInfo').hide();$('.encodeLogin').show();"> <div class="tip">微信登录更方便</div> </div> <div class="passwordInfo"> <ul class="logintabs selfTabMenu"> <li class="selfTabItem loginFormLi curr">密码登录</li> <li class="selfTabItem registerFormBox ">注册账号</li> </ul> <div class="selfTabContBox"> <div class="selfTabCont loginFormBox" style="display: block;"> <form name="form" id="login-form" class="form-vertical form" method="POST" action="/index/user/login"> <input type="hidden" name="url" value="//www.17golang.com/article/479592.html"/> <input type="hidden" name="__token__" value="c19d6a0116f5f7d07e318684829f1d26" /> <div class="form-group" style="height:70px;"> <input class="form-control" id="account" type="text" name="account" value="" data-rule="required" placeholder="邮箱/用户名" autocomplete="off"> </div> <div class="form-group" style="height:70px;"> <input class="form-control" id="password" type="password" name="password" data-rule="required;password" placeholder="密码" autocomplete="off"> </div> <div class="codeBox" style="height:70px;"> <div class="form-group" style="height:70px; width:205px; float: left;"> <input type="text" name="captcha" class="form-control" placeholder="验证码" data-rule="required;length(4)" /> </div> <span class="input-group-btn" style="padding:0;border:none;"> <img src="/captcha.html" width="100" height="45" onclick="this.src = '/captcha.html?r=' + Math.random();"/> </span> </div> <div class="other"> <a href="#" class="forgetPwd aGray" onclick="$('.loginInfo').hide();$('.passwordForget').show();" title="忘记密码">忘记密码</a> </div> <div class="loginBtn mt25"> <button type="submit">登录</button> </div> </form> </div> <div class="selfTabCont registerFormBox" style="display: none;"> <form name="form1" id="register-form" class="form-vertical form" method="POST" action="/index/user/register"> <input type="hidden" name="invite_user_id" value="0"/> <input type="hidden" name="url" value="//www.17golang.com/article/479592.html"/> <input type="hidden" name="__token__" value="c19d6a0116f5f7d07e318684829f1d26" /> <div class="form-group" style="height:70px;"> <input type="text" name="email" id="email2" data-rule="required;email" class="form-control" placeholder="邮箱"> </div> <div class="form-group" style="height:70px;"> <input type="text" id="username" name="username" data-rule="required;username" class="form-control" placeholder="用户名必须3-30个字符"> </div> <div class="form-group" style="height:70px;"> <input type="password" id="password2" name="password" data-rule="required;password" class="form-control" placeholder="密码必须6-30个字符"> </div> <div class="codeBox" style="height:70px;"> <div class="form-group" style="height:70px; width:205px; float: left;"> <input type="text" name="captcha" class="form-control" placeholder="验证码" data-rule="required;length(4)" /> </div> <span class="input-group-btn" style="padding:0;border:none;"> <img src="/captcha.html" width="100" height="45" onclick="this.src = '/captcha.html?r=' + Math.random();"/> </span> </div> <div class="loginBtn"> <button type="submit">注册</button> </div> </form> </div> </div> </div> <div class="beforeLoginTip">登录即同意 <a href="https://www.17golang.com/about/3.html" target="_blank" class="aBlue" title="用户协议">用户协议</a> 和 <a href="https://www.17golang.com/about/4.html" target="_blank" class="aBlue" title="隐私政策">隐私政策</a></div> </div> <!-- 重置密码 --> <div class="loginInfo passwordForget"> <div class="closeIcon" onclick="$('.popupBg').hide();"></div> <div class="returnLogin cursorPointer" onclick="$('.passwordForget').hide();$('.passwordLogin').show();">返回登录</div> <div class="passwordInfo"> <ul class="logintabs selfTabMenu"> <li class="selfTabItem">重置密码</li> </ul> <div class="selfTabContBox"> <div class="selfTabCont"> <form id="resetpwd-form" class="form-horizontal form-layer nice-validator n-default n-bootstrap form" method="POST" action="/api/user/resetpwd.html" novalidate="novalidate"> <div style="height:70px;"> <input type="text" class="form-control" id="email" name="email" value="" placeholder="输入邮箱" aria-invalid="true"> </div> <div class="codeBox" style="height:70px;"> <div class="form-group" style="height:70px; width:205px; float: left;"> <input type="text" name="captcha" class="form-control" placeholder="验证码" /> </div> <span class="input-group-btn" style="padding:0;border:none;"> <a href="javascript:;" class="btn btn-primary btn-captcha cursorPointer" style="background: #2080F8; border-radius: 4px; color: #fff; padding: 12px; position: absolute;" data-url="/api/ems/send.html" data-type="email" data-event="resetpwd">发送验证码</a> </span> </div> <input type="password" class="form-control" id="newpassword" name="newpassword" value="" placeholder="请输入6-18位密码"> <div class="loginBtn mt25"> <button type="submit">重置密码</button> </div> </form> </div> </div> </div> </div> </div> </div> <script src="/assets/js/juejin-theme.js?v=20260613b" defer></script> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?e34c3e8ab31ba35d7e1c48ea8d77315f"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <script src="/assets/js/frontend/common.js"></script> </body> </html>