SvelteKit 最新中文文档教程(22)—— 最佳实践之无障碍与 SEO

前言

Svelte,一个语法简洁、入门容易,面向未来的前端框架。

从 Svelte 诞生之初,就备受开发者的喜爱,根据统计,从 2019 年到 2024 年,连续 6 年一直是开发者最感兴趣的前端框架 No.1

image.png

Svelte 以其独特的编译时优化机制著称,具有轻量级高性能易上手等特性,非常适合构建轻量级 Web 项目

为了帮助大家学习 Svelte,我同时搭建了 Svelte 最新的中文文档站点。

如果需要进阶学习,也可以入手我的小册《Svelte 开发指南》,语法篇、实战篇、原理篇三大篇章带你系统掌握 Svelte!

欢迎围观我的“网页版朋友圈”、加入“冴羽·成长陪伴社群”,踏上“前端大佬成长之路”

无障碍

SvelteKit 默认努力为您的应用程序提供一个无障碍的平台。Svelte 的编译时无障碍检查也将适用于您构建的任何 SvelteKit 应用程序。

以下是 SvelteKit 内置无障碍功能的工作原理,以及您需要做什么来帮助这些功能尽可能好地工作。请记住,虽然 SvelteKit 提供了无障碍的基础,但您仍然要负责确保您的应用程序代码是无障碍的。如果您是无障碍新手,请参阅本指南的"进一步阅读"部分获取更多资源。

我们认识到实现无障碍可能很困难。如果您想就 SvelteKit 处理无障碍的方式提出改进建议,请提交 GitHub issue

路由公告

在传统的服务端渲染应用程序中,每次导航(例如点击 标签)都会触发完整的页面重载。当这种情况发生时,屏幕阅读器和其他辅助技术会读出新页面的标题,让用户理解页面已经改变。

由于 SvelteKit 中页面之间的导航无需重新加载页面(称为客户端路由),SvelteKit 在页面上注入了一个实时区域,在每次导航后读出新页面名称。它通过检查 </code> 元素来确定要宣布的页面名称。</p> <p>因此,您应用程序中的每个页面都应该有一个独特的、描述性的标题。在 SvelteKit 中,您可以通过在每个页面上放置 <code><svelte:head></code> 元素来实现:</p> <pre><code class="svelte"><!--- file: src/routes/+page.svelte ---> <svelte:head> <title>待办事项列表

这将使屏幕阅读器和其他辅助技术能够在导航发生后识别新页面。提供描述性标题对于 SEO 也很重要。

焦点管理

在传统的服务端渲染应用程序中,每次导航都会将焦点重置到页面顶部。这确保了使用键盘或屏幕阅读器浏览网页的人可以从页面开始处开始交互。

为了在客户端路由期间模拟这种行为,SvelteKit 在每次导航和增强型表单提交后会将焦点设置在 元素上。有一个例外 - 如果存在带有 autofocus 属性的元素,SvelteKit 将转而聚焦该元素。使用该属性时,请确保考虑对辅助技术的影响

如果您想自定义 SvelteKit 的焦点管理,可以使用 afterNavigate 钩子:

/// 
// ---cut---
import { afterNavigate } from '$app/navigation';

afterNavigate(() => {
    /** @type {HTMLElement | null} */
    const to_focus = document.querySelector('.focus-me');
    to_focus?.focus();
});

您也可以使用 goto 函数以编程方式导航到不同的页面。默认情况下,这将具有与点击链接相同的客户端路由行为。但是,goto 也接受一个 keepFocus 选项,该选项将保留当前聚焦的元素,而不是重置焦点。如果启用此选项,请确保当前聚焦的元素在导航后仍然存在于页面上。如果该元素不再存在,用户的焦点将丢失,这会让辅助技术用户感到困惑。

"lang" 属性

默认情况下,SvelteKit 的页面模板将文档的默认语言设置为英语。如果您的内容不是英语,您应该更新 src/app.html 中的 元素,使其具有正确的 lang 属性。这将确保任何阅读文档的辅助技术使用正确的发音。例如,如果您的内容是德语,您应该将 app.html 更新为:

/// file: src/app.html

如果您的内容提供多种语言,您应该根据当前页面的语言设置 lang 属性。您可以使用 SvelteKit 的 handle hook来实现:

/// file: src/app.html
/// file: src/hooks.server.js
/**
 * @param {import('@sveltejs/kit').RequestEvent} event
 */
function get_lang(event) {
    return 'en';
}
// ---cut---
/** @type {import('@sveltejs/kit').Handle} */
export function handle({ event, resolve }) {
    return resolve(event, {
        transformPageChunk: ({ html }) => html.replace('%lang%', get_lang(event))
    });
}

进一步阅读

在大多数情况下,构建无障碍 SvelteKit 应用程序与构建无障碍 Web 应用程序是一样的。您应该能够将以下通用无障碍资源中的信息应用到您构建的任何 Web 体验中:

SEO

SEO 最重要的方面是创建高质量的内容,使其能在网络上被广泛链接。但是,构建能够良好排名的网站,还需要考虑一些技术因素。

开箱即用的功能

SSR(服务端渲染)

虽然近年来搜索引擎在索引客户端 JavaScript 渲染的内容方面有所改善,但服务端渲染的内容仍然能够更频繁和可靠地被索引。SvelteKit 默认采用 SSR,虽然您可以在handle中禁用它,但除非有充分的理由,否则应该保持启用。

[!NOTE] SvelteKit 的渲染是高度可配置的,您可以根据需要实现动态渲染。但这通常不推荐,因为 SSR 除了 SEO 之外还有其他好处。

性能

核心网页指标等信号会影响搜索引擎排名。由于 Svelte 和 SvelteKit 引入的开销最小,因此更容易构建高性能网站。您可以使用 Google 的 PageSpeed InsightsLighthouse 测试您的网站性能。详情请阅读性能页面

URL 标准化

SvelteKit 会将带有尾部斜杠的路径重定向到不带斜杠的路径(或根据您的配置反向操作),因为重复的 URL 对 SEO 不利。

手动设置

</code> 和 <code><meta></code></h4> <p>每个页面都应该在 <a href="https://link.segmentfault.com/?enc=At560dsi3DW54UZslhrekw%3D%3D.hC8x6A1DU%2FBSxwQUoiTsDrZAN8UGcQfPoYpqzm%2FHkiK90d4svLE4Q1AFH%2FMBj6X6GVSOyGqX8p%2BKvz2DfCFghw%3D%3D" rel="nofollow" target="_blank"><code><svelte:head></code></a> 中包含精心编写的独特的 <code><title></code> 和 <code><meta name="description"></code> 元素。关于如何编写描述性标题和描述,以及其他使内容便于搜索引擎理解的建议,可以在Google的 <a href="https://link.segmentfault.com/?enc=8i%2FaxInAcmmWKYfaG0Grzg%3D%3D.vTXaVH0WVU3W%2B%2Bs5YOoiV4qma9wa6cZIWeZORjmVX3c%3D" rel="nofollow" target="_blank">Lighthouse SEO 审核</a> 文档中找到。</p> <blockquote> [!NOTE] 一个常见的模式是从页面的 <a href="https://link.segmentfault.com/?enc=PMSmb2Ol3GOw7w2fxqZfwQ%3D%3D.%2FQPkAKZujB6YSLLCDCp%2BgKAvu92qsINlDnBf7FVYTtl6%2BW5PaapUX95OQjk8x9Vz" rel="nofollow" target="_blank"><code>load</code></a> 函数返回与 SEO 相关的 <code>data</code>,然后在根<a href="https://link.segmentfault.com/?enc=dZxo9%2FOv2b1HNQUpW3tdVg%3D%3D.%2Bgg7b8kX5z86sb1TYVkDNz3VnbIlZ9LFm0rDszozbZ60Use%2BD%2F%2FRzAR135vuA1RM0GB0lyyvTnAXN05gI8EfXA%3D%3D" rel="nofollow" target="_blank">布局</a>的 <code><svelte:head></code> 中使用它(作为<a href="https://link.segmentfault.com/?enc=GJnc0q%2FFepHegFb78dIpfQ%3D%3D.fuzLbXm1eOgNwt%2FbEgWmDWhB63A4FQkcCU2JE4JckxdNSk8o4iYTsIYL8Kher20XghrBvCbPEJZq2nvny7y5a%2Ft8Ka%2F2ESDtt4j2jc3rics%3D" rel="nofollow" target="_blank"><code>page.data</code></a>)。 </blockquote> <h4>站点地图</h4> <p><a href="https://link.segmentfault.com/?enc=TUh1l%2BlNlyBnJcJqbipkdw%3D%3D.zrwnwBRdZKEyQMRITKN%2FYK%2FkbB8GxkmDZtgAJ5nLRPBsCFtNVjMNpdQOyBHJyVXF46PMqyVswyDfkEq1mDPr8Yx1qgwsUwJqHFNEG4GGQSY%3D" rel="nofollow" target="_blank">站点地图</a>可帮助搜索引擎对网站内的页面进行优先级排序,特别是当您有大量内容时。您可以使用端点动态创建站点地图:</p> <pre><code class="js">/// file: src/routes/sitemap.xml/+server.js export async function GET() { return new Response( ` <?xml version="1.0" encoding="UTF-8" ?> <urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="https://www.w3.org/1999/xhtml" xmlns:mobile="https://www.google.com/schemas/sitemap-mobile/1.0" xmlns:news="https://www.google.com/schemas/sitemap-news/0.9" xmlns:image="https://www.google.com/schemas/sitemap-image/1.1" xmlns:video="https://www.google.com/schemas/sitemap-video/1.1" > <!-- <url>元素放在这里 --> </urlset>`.trim(), { headers: { 'Content-Type': 'application/xml' } } ); }</code></pre> <h4>AMP</h4> <p>现代网络开发的一个不幸现实是有时需要创建网站的<a href="https://link.segmentfault.com/?enc=AC4U2Ho48CvQYTBvTNzB1A%3D%3D.IKW24Ff%2BgwkbZl6Y92KupAEi%2FFEY4Vcf5he440t8W8I%3D" rel="nofollow" target="_blank">加速移动页面(AMP)</a>版本。在 SvelteKit 中,这可以通过设置 <a href="https://link.segmentfault.com/?enc=Y43fj1C6QzBYhbBLYcCCsA%3D%3D.sPfkD1Lf53q%2FWKhi83hehnRwQyfOOW1hMKAd2KKWzr2kA6%2FmRt1Cs%2FSSUmrnXbtHZH6iwflkt6hpZTuxmQVdEykFuJndmkyUI2FNyqiBGCE%3D" rel="nofollow" target="_blank"><code>inlineStyleThreshold</code></a> 选项来实现...</p> <pre><code class="js">/// file: svelte.config.js /** @type {import('@sveltejs/kit').Config} */ const config = { kit: { // 由于不允许使用<link rel="stylesheet">, // 内联所有样式 inlineStyleThreshold: Infinity } }; export default config;</code></pre> <p>...在根 <code>+layout.js</code>/<code>+layout.server.js</code> 中禁用 <code>csr</code>...</p> <pre><code class="js">/// file: src/routes/+layout.server.js export const csr = false;</code></pre> <p>...在<code>app.html</code>中添加<code>amp</code>...</p> <pre><code class="html"><html amp> ... </html></code></pre> <p>...并使用从 <code>@sveltejs/amp</code> 导入的 <code>transform</code> 和 <code>transformPageChunk</code> 转换 HTML:</p> <pre><code class="js">/// file: src/hooks.server.js import * as amp from '@sveltejs/amp'; /** @type {import('@sveltejs/kit').Handle} */ export async function handle({ event, resolve }) { let buffer = ''; return await resolve(event, { transformPageChunk: ({ html, done }) => { buffer += html; if (done) return amp.transform(buffer); } }); }</code></pre> <p>为了防止在将页面转换为 amp 时发送任何未使用的 CSS,我们可以使用<a href="https://link.segmentfault.com/?enc=8TArkzMZyzp3Q1jrGY9SEQ%3D%3D.lWOWftlUVmSnVshREDUHwdh%2FlEyktbsM2sPZwqltfy5kvMlxYZFMjGv6BagYlhYK" rel="nofollow" target="_blank"><code>dropcss</code></a>:</p> <pre><code class="js">// @filename: ambient.d.ts declare module 'dropcss'; // @filename: index.js // ---cut--- /// file: src/hooks.server.js // @errors: 2307 import * as amp from '@sveltejs/amp'; import dropcss from 'dropcss'; /** @type {import('@sveltejs/kit').Handle} */ export async function handle({ event, resolve }) { let buffer = ''; return await resolve(event, { transformPageChunk: ({ html, done }) => { buffer += html; if (done) { let css = ''; const markup = amp .transform(buffer) .replace('⚡', 'amp') // dropcss无法处理此字符 .replace(/<style amp-custom([^>]*?)>([^]+?)<\/style>/, (match, attributes, contents) => { css = contents; return `<style amp-custom${attributes}></style>`; }); css = dropcss({ css, html: markup }).css; return markup.replace('</style>', `${css}</style>`); } } }); }</code></pre> <blockquote> [!NOTE] 使用 <code>handle</code> hook 通过 <code>amphtml-validator</code> 验证转换后的 HTML 是个好主意,但由于速度很慢,仅建议在预渲染页面时使用。 </blockquote> <h2>Svelte 中文文档</h2> <p>点击查看中文文档:</p> <ol> <li><a href="https://link.segmentfault.com/?enc=OgZ7VD3M4WGo%2Bpkdfj2KLw%3D%3D.7V2YcODS1Lbc5fV7k1noVER43NCj0pIeb9H6rZgTeXCfUelDd38rF29wWvgxuixGq%2Bj3X4S7F4Nyj2u2YbkDGA%3D%3D" rel="nofollow" target="_blank">SvelteKit 无障碍</a></li> <li><a href="https://link.segmentfault.com/?enc=chgSo8ndLKEnTt63D9Dw9Q%3D%3D.nzJ0J0G1KwmH%2FG%2FA9llWVDcu8vBKsC%2FGvQv89NJoDoeX78fnTtdmlvXEhpvcZkuR" rel="nofollow" target="_blank">SvelteKit SEO</a></li> </ol> <p>系统学习 Svelte,欢迎入手小册<a href="https://link.segmentfault.com/?enc=vRICDHtAHlHYufgEgLi3IQ%3D%3D.1aQFR4p9Ud04y%2BTnj52JGT4XCJP2gxj3pcFSPLnPZyG%2FfAOQ2U4%2FsI%2Fi7AbfoYjY" rel="nofollow" target="_blank">《Svelte 开发指南》</a>。语法篇、实战篇、原理篇三大篇章带你系统掌握 Svelte!</p> <p>此外我还写过 <a href="https://link.segmentfault.com/?enc=MEXWfEOaS8hp2lgPzX%2B7Cg%3D%3D.HY%2BqDG7fKNDv608Na%2BRDAIcPIM3pRQzDC8x%2FJ2fJeQZrjzhpmQtFCyxpc6hOs4cT" rel="nofollow" target="_blank">JavaScript 系列</a>、<a href="https://link.segmentfault.com/?enc=QbIi%2BBviLXrF4MVSghTvbQ%3D%3D.02r9eZfYpK6MVoPa3v7pSSM09uzejd6mNuhaYQunVSX24a%2BCUtjJZxZ%2BiB5f0t41" rel="nofollow" target="_blank">TypeScript 系列</a>、<a href="https://link.segmentfault.com/?enc=Ir5mU%2B8NdpE63%2F8HFiMENw%3D%3D.BsrHuaT1MBJTedeHiA2YlqUCCf71nkhjCl%2B9SyyFg8xJ7yEgqa4A48mGQcRxTQ2c" rel="nofollow" target="_blank">React 系列</a>、<a href="https://link.segmentfault.com/?enc=FjT7xdF%2FaIlDNUdMEsHiPQ%3D%3D.F1h7zXUR8U1TQmvpmf%2F768CzdlUpEjY6Xxj9JOEkcwX2oQeL9CnU57MdFSi4Odwc" rel="nofollow" target="_blank">Next.js 系列</a>、<a href="https://link.segmentfault.com/?enc=2aXDiZYPmsbbvsCvKrqnVg%3D%3D.6RuqrKTuq4K2yZV0LyRJDn9VRDzXaps26erQfeqISBcvnQf4QtXvDnmrprk29x9Z" rel="nofollow" target="_blank">冴羽答读者问</a>等 14 个系列文章, 全系列文章目录:<a href="https://link.segmentfault.com/?enc=p5EBmOFrlHs2ydzRhhXINg%3D%3D.Gb8jXeurYwSYhQDsUwb8r0iENPbaGkdBvRlmsmwQCgoMOMn%2FGCur9WCCNowPeCP8" rel="nofollow" target="_blank">https://github.com/mqyqingfeng/Blog</a></p> <p>欢迎围观我的<a href="https://link.segmentfault.com/?enc=7uW4GXeGUsuvS3PB7GV9Gw%3D%3D.E9USfLHMJ%2FR372LZ%2BdwgGVZ7OhWWu946P7dctJMi%2BvM%3D" rel="nofollow" target="_blank">“网页版朋友圈”</a>、加入<a href="https://link.segmentfault.com/?enc=lGEJeznX0hOhzX3gL%2FqsFw%3D%3D.SeF1LEoautXzvI64ZimMx9I%2BIGvWqMpzKY%2FsWE7Y8kyXle%2BCQ7zzWjVrxEgtzsGY" rel="nofollow" target="_blank">“冴羽·成长陪伴社群”</a>,踏上<a href="https://link.segmentfault.com/?enc=HHfe6Ahn29FYKp1y0ktG7A%3D%3D.YNvzEf%2Fac%2B2aj0sSHVHBsOA6anv8VvjnXvOutc6RIfI%3D" rel="nofollow" target="_blank">“前端大佬成长之路”</a>。</p> </article> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1914324624653479936"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(SvelteKit 最新中文文档教程(22)—— 最佳实践之无障碍与 SEO)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1939628667873325056.htm" title="《凤凰架构》C7-分布式服务" target="_blank">《凤凰架构》C7-分布式服务</a> <span class="text-muted">Epi_HHH</span> <a class="tag" taget="_blank" href="/search/%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0/1.htm">阅读笔记</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>目录一、服务发现二、网关路由三、负载均衡一、服务发现服务发现就是动态定位服务实例地址,解决分布式环境下服务实例IP和端口可能变化的问题1)基础概念远程服务调用精确坐标:全限定名+端口号+服务标识,如:order-service.default.svc.cluster.local:50051/com.example.order.OrderService/getOrderById服务标识:与具体的应用</div> </li> <li><a href="/article/1939628668389224448.htm" title="《凤凰架构》C12-容器间网络" target="_blank">《凤凰架构》C12-容器间网络</a> <span class="text-muted">Epi_HHH</span> <a class="tag" taget="_blank" href="/search/%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0/1.htm">阅读笔记</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a> <div>一、Linux网络虚拟化1)干预网络通信——以NetFliter与iptable为例钩子是iptables在内核网络协议栈处理数据包时的“插入点”,也就是规则生效的具体时刻和位置。数据包经过网络栈,会在不同阶段被iptables规则检查。INPUT:处理进入本机的数据包OUTPUT:处理由本机发出的数据包FORWARD:处理经过本机转发的数据包PREROUTING:数据包进入路由决策前(常用来做D</div> </li> <li><a href="/article/1939628664408829952.htm" title="Go语言的单元测试与基准测试详解" target="_blank">Go语言的单元测试与基准测试详解</a> <span class="text-muted">旧游无处不堪寻</span> <a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/1.htm">测试工具</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E7%94%A8%E4%BE%8B/1.htm">测试用例</a><a class="tag" taget="_blank" href="/search/jenkins/1.htm">jenkins</a><a class="tag" taget="_blank" href="/search/%E9%9B%86%E6%88%90%E6%B5%8B%E8%AF%95/1.htm">集成测试</a><a class="tag" taget="_blank" href="/search/%E5%8A%9F%E8%83%BD%E6%B5%8B%E8%AF%95/1.htm">功能测试</a> <div>单元测试以一个加法函数为例,对其进行单元测试。首先编写add.go文件://add.gopackagemainfuncadd(a,bint)int{returna+b}其次编写add_test.go文件,在go语言中,测试文件均已_test结尾,这里只需要在被测试的文件后加上_test即可。并且测试文件与要被测试的文件需要放在同一个包中,并不像Java那样需要将所有的测试文件放在一个专门的测试文件</div> </li> <li><a href="/article/1939628666078162944.htm" title="【LLaMA 3实战】3、LLaMA 3长文本处理终极指南:从128K上下文到百万级文档实战" target="_blank">【LLaMA 3实战】3、LLaMA 3长文本处理终极指南:从128K上下文到百万级文档实战</a> <span class="text-muted">无心水</span> <a class="tag" taget="_blank" href="/search/LLaMA/1.htm">LLaMA</a><a class="tag" taget="_blank" href="/search/3/1.htm">3</a><a class="tag" taget="_blank" href="/search/%E6%A8%A1%E5%9E%8B%E5%AE%9E%E6%88%98%E4%B8%93%E6%A0%8F/1.htm">模型实战专栏</a><a class="tag" taget="_blank" href="/search/LLaMA/1.htm">LLaMA</a><a class="tag" taget="_blank" href="/search/LLaMA/1.htm">LLaMA</a><a class="tag" taget="_blank" href="/search/3/1.htm">3</a><a class="tag" taget="_blank" href="/search/%E9%95%BF%E6%96%87%E6%9C%AC%E5%A4%84%E7%90%86/1.htm">长文本处理</a><a class="tag" taget="_blank" href="/search/Meta/1.htm">Meta</a><a class="tag" taget="_blank" href="/search/AI%E5%A4%A7%E6%A8%A1%E5%9E%8B/1.htm">AI大模型</a><a class="tag" taget="_blank" href="/search/CSDN%E6%8A%80%E6%9C%AF%E5%B9%B2%E8%B4%A7/1.htm">CSDN技术干货</a><a class="tag" taget="_blank" href="/search/LLaMA/1.htm">LLaMA</a><a class="tag" taget="_blank" href="/search/3/1.htm">3</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E6%B2%BF%E6%A8%A1%E5%9E%8B%E5%AE%9E%E6%88%98/1.htm">前沿模型实战</a> <div>引言:长文本处理的技术跃迁当LLaMA3将上下文窗口扩展至128Ktokens(约8万字),长文本处理技术迎来了革命性突破。这不仅意味着模型能处理更复杂的文档,更开启了"全局认知"的新可能——从法律合同的全条款审查到代码仓库的跨文件重构,从金融报告的时序分析到医疗病历的全周期追踪。本文将系统拆解LLaMA3长文本能力的技术内核,提供工程级优化方案与实战技巧,助你突破长文本处理的算力瓶颈与应用边界。</div> </li> <li><a href="/article/1939628160370929664.htm" title="FineWeb数据集" target="_blank">FineWeb数据集</a> <span class="text-muted">frostmelody</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>FineWeb数据集根据您提供的文档链接,我将对FineWeb数据集进行全面解析。FineWeb是HuggingFace在2024年发布的一项革命性开源AI训练数据集,它通过提供高质量、大规模的数据,打破了AI训练数据的垄断局面。以下解析基于文档内容,分为几个核心部分:FineWeb的定义与规模、其重要性、主要突破点,以及制作过程的全貌。我会在相关部分嵌入文档中的图片,以增强理解。所有图片均来自文</div> </li> <li><a href="/article/1939626774761631744.htm" title="普通话的调域中值" target="_blank">普通话的调域中值</a> <span class="text-muted">音元系统</span> <a class="tag" taget="_blank" href="/search/%E8%AF%AD%E9%9F%B3%E8%AF%86%E5%88%AB/1.htm">语音识别</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86/1.htm">自然语言处理</a><a class="tag" taget="_blank" href="/search/%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">语言模型</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>普通话调域中值测算为五度标调法的3.81及其取整为4的准确性与合理性研究摘要本研究通过对比分析不同计算方法得出的普通话调域中值,探讨了将调域中值测算为3.81并取整为4的准确性与合理性。研究比较了本中值算法与刘俐李(2004)算法的差异,结合石锋(1986)等实证研究数据,验证了3.81作为调域中值的科学性。结果表明,该取值不仅符合普通话声调的实际分布特征,也为五度标调法的应用提供了更精确的参考标</div> </li> <li><a href="/article/1939624004788744192.htm" title="Node.js 中的 JWT 认证:从生成到验证的完整指南" target="_blank">Node.js 中的 JWT 认证:从生成到验证的完整指南</a> <span class="text-muted">盛夏绽放</span> <a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/%E6%9C%89%E9%97%AE%E5%BF%85%E7%AD%94/1.htm">有问必答</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>文章目录Node.js中的JWT认证:从生成到验证的完整指南一、JWT是什么?为什么需要它?传统session与JWT对比二、JWT的结构解析三、Node.js中实现JWT1.安装jsonwebtoken包2.生成JWT3.验证JWT4.错误处理大全四、高级应用场景1.刷新令牌机制2.在不同路由中的验证中间件五、安全最佳实践六、常见问题解答七、完整示例代码结语主要内容包括:使用jsonwebtok</div> </li> <li><a href="/article/1939622996490645504.htm" title="mysql锁机制" target="_blank">mysql锁机制</a> <span class="text-muted">weixin_45990219</span> <a class="tag" taget="_blank" href="/search/%E6%95%99%E7%A8%8B/1.htm">教程</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>深入解析MySQL锁机制:从原理到实战场景前言在数据库高并发场景中,锁机制是保障数据一致性和事务隔离性的核心。然而,MySQL中锁的类型繁多,概念抽象,容易让人望而生畏。本文将通过通俗的语言和实际场景,带你彻底理解MySQL中的各种锁机制及其应用。一、锁的由来与分类1.1为什么需要锁?多个事务并发执行时,可能出现脏写、脏读、不可重复读、幻读等问题。例如:场景:A事务修改了某条数据但未提交,B事务读</div> </li> <li><a href="/article/1939622490494005248.htm" title="Node.js特训专栏-实战进阶:7.Express模板引擎选型与使用" target="_blank">Node.js特训专栏-实战进阶:7.Express模板引擎选型与使用</a> <span class="text-muted">爱分享的程序员</span> <a class="tag" taget="_blank" href="/search/Node.js/1.htm">Node.js</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>欢迎来到Node.js实战专栏!在这里,每一行代码都是解锁高性能应用的钥匙,让我们一起开启Node.js的奇妙开发之旅!Node.js特训专栏主页专栏内容规划详情Express模板引擎选型与使用全解析:打造动态Web页面的利器在基于Express构建Web应用时,模板引擎是生成动态页面的核心组件。它允许开发者将数据与HTML结构分离,通过简单的语法将后端数据动态填充到页面中。市面上存在多种模板引擎</div> </li> <li><a href="/article/1939622491525804032.htm" title="ROS 避障技术介绍" target="_blank">ROS 避障技术介绍</a> <span class="text-muted">Xian-HHappy</span> <a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E4%BA%BA-Robot/1.htm">机器人-Robot</a><a class="tag" taget="_blank" href="/search/ros/1.htm">ros</a><a class="tag" taget="_blank" href="/search/%E9%81%BF%E9%9A%9C/1.htm">避障</a> <div>ROS避障技术介绍一、ROS避障系统概述ROS(机器人操作系统)作为移动机器人开发的主流框架,其避障技术依托模块化设计,通过传感器数据融合、环境建模与运动规划实现动态障碍物规避。在物流机器人、服务机器人、自动驾驶等场景中,ROS避障系统需满足实时性、安全性与灵活性要求,核心流程包括环境感知-障碍建模-路径规划-运动控制四个环节。二、避障核心组件与原理1.传感器层:环境信息获取激光雷达(如Velod</div> </li> <li><a href="/article/1939620347376627712.htm" title="MySQL 锁机制全解析:从表锁到间隙锁,谁都能看懂的知识!" target="_blank">MySQL 锁机制全解析:从表锁到间隙锁,谁都能看懂的知识!</a> <span class="text-muted">dr李四维</span> <a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/%E9%94%81/1.htm">锁</a><a class="tag" taget="_blank" href="/search/%E6%AD%BB%E9%94%81/1.htm">死锁</a><a class="tag" taget="_blank" href="/search/%E4%B9%90%E8%A7%82%E9%94%81/1.htm">乐观锁</a><a class="tag" taget="_blank" href="/search/%E6%82%B2%E8%A7%82%E9%94%81/1.htm">悲观锁</a><a class="tag" taget="_blank" href="/search/%E6%84%8F%E5%90%91%E9%94%81/1.htm">意向锁</a> <div>目录一、锁的基本概念二、MySQL中的锁类型1.表级锁(TableLock)2.行级锁(RowLock)3.间隙锁(GapLock)4.意向锁(IntentLock)5.乐观锁(OptimisticLock)6.悲观锁(PessimisticLock)7.死锁(Deadlock)8.自增锁(Auto-IncrementLock)9.元数据锁(MetadataLock,MDL)三、锁的对比与选择四、</div> </li> <li><a href="/article/1939619968047968256.htm" title="recipes的版本比较老如何更新到新版本?" target="_blank">recipes的版本比较老如何更新到新版本?</a> <span class="text-muted">最后一个bug</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%A1%AC%E4%BB%B6/1.htm">嵌入式硬件</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%9E%84%E5%BB%BA/1.htm">软件构建</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>在Yocto项目中,当你发现“meta-openembedded”层中的某些recipe版本太旧,而你想使用更新版本时,最佳实践是在你自己项目的自定义层(customlayer)中使用“bbappend”文件进行覆盖或升级。核心思路:不要直接修改“meta-openembedded”层的recipe(“*.bb”文件)。相反,在你的层中创建一个对应名称的“.bbappend”文件,通过这个“.ap</div> </li> <li><a href="/article/1939619085952282624.htm" title="计算机导论期末快速复习指南" target="_blank">计算机导论期末快速复习指南</a> <span class="text-muted">Pu_Nine_9</span> <a class="tag" taget="_blank" href="/search/%E6%9D%82%E8%AE%B0/1.htm">杂记</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%AF%BC%E8%AE%BA/1.htm">计算机导论</a> <div>操作系统核心概念进程与线程进程是程序在内存中的一次执行过程,具有动态性和并发性一个进程可以有多个线程,但至少要有一个线程资源分配给进程,同一进程的所有线程共享该进程的所有资源处理机分配给线程,真正在处理机上运行的是线程进程状态转换:被唤醒→就绪状态;时间片用完→执行状态变为就绪状态进程同步与死锁互斥:系统存在临界资源循环等待:多个进程形成等待链不可剥夺:已分配资源在宿主释放前不能被剥夺操作系统类型</div> </li> <li><a href="/article/1939616565548871680.htm" title="memcpy与memcpy_toio:深入解析两大数据传输神器" target="_blank">memcpy与memcpy_toio:深入解析两大数据传输神器</a> <span class="text-muted">jghhh01</span> <a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a> <div>在软件开发中,数据的高效传输是确保程序性能和稳定性的关键。C语言作为一种广泛应用于系统编程和嵌入式开发的语言,提供了多种用于数据复制和传输的函数。其中,memcpy和memcpy_toio是两个备受关注的数据传输函数,它们各自在特定场景下发挥着不可替代的作用。本文将深入解析这两个函数,探讨它们的用途、区别以及在实际应用中的最佳实践。一、memcpy:内存复制的基础工具memcpy是C标准库中的一个</div> </li> <li><a href="/article/1939616438532763648.htm" title="学而思编程周赛语言普及奠基组 | 2025年春第15周T1 新二进制" target="_blank">学而思编程周赛语言普及奠基组 | 2025年春第15周T1 新二进制</a> <span class="text-muted">热爱编程的通信人</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a> <div>欢迎大家订阅我的专栏:算法题解:C++与Python实现!本专栏旨在帮助大家从基础到进阶,逐步提升编程能力,助力信息学竞赛备战!专栏特色1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。适合人群:准备参加蓝桥杯、GESP、CSP-J、CS</div> </li> <li><a href="/article/1939616439128354816.htm" title="学而思编程周赛语言普及奠基组 | 2025年春第15周T2 散步" target="_blank">学而思编程周赛语言普及奠基组 | 2025年春第15周T2 散步</a> <span class="text-muted">热爱编程的通信人</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a> <div>欢迎大家订阅我的专栏:算法题解:C++与Python实现!本专栏旨在帮助大家从基础到进阶,逐步提升编程能力,助力信息学竞赛备战!专栏特色1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。适合人群:准备参加蓝桥杯、GESP、CSP-J、CS</div> </li> <li><a href="/article/1939615681595109376.htm" title="织梦DedeCMS转WordPress" target="_blank">织梦DedeCMS转WordPress</a> <span class="text-muted">asqq8</span> <div>最近,有个用户找模板兔迁移网站,源站用的dede,需要转成wp,文章数量大概7000-8000篇,其中有个需求是保证旧文章的链接有效,在wp上的新文章与旧文章的链接类型不一样,所以这涉及到伪静态来处理跳转。虽然网上都很多教程,但是在这次导入过程中还是遇到过一些问题。以下教程是dede的数据表得与wp的数据表在同一个数据库下!要是不在,可以将dede_archives先导入到wp的数据库里。一般流程</div> </li> <li><a href="/article/1939615554205708288.htm" title="多线程同步机制:深入解析互斥锁的原理与实践" target="_blank">多线程同步机制:深入解析互斥锁的原理与实践</a> <span class="text-muted">码事漫谈</span> <a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a> <div>文章目录1.多线程同步问题1.1数据竞争1.2未定义行为2.互斥锁(Mutex)的原理2.1加锁2.2解锁3.线程的运行、阻塞、等待状态3.1运行状态(Running)3.2阻塞状态(Blocked)3.3等待状态(Waiting)3.4状态转换流程图图的解释4.C++中的`std::mutex`4.1使用`std::mutex`4.2`std::lock_guard`5.总结在多线程编程中,同步</div> </li> <li><a href="/article/1939615427860688896.htm" title="PyEcharts教程(009):PyEcharts绘制水球图" target="_blank">PyEcharts教程(009):PyEcharts绘制水球图</a> <span class="text-muted">文理棵</span> <a class="tag" taget="_blank" href="/search/Python%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">Python数据分析</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E6%81%AF%E5%8F%AF%E8%A7%86%E5%8C%96/1.htm">信息可视化</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">数据分析</a><a class="tag" taget="_blank" href="/search/PyEcharts/1.htm">PyEcharts</a> <div>文章目录1、什么是水球图2、水球图示例:任务完成度1、什么是水球图水球图(Liquidchart)是PyECharts提供的一种非常形象的图表类型,适合展示百分比类指标,如健康评分、任务完成度、系统利用率等,水位高度越高表示数值越大,图形本身看起来像一个装水的圆球,非常直观。2、水球图示例:任务完成度1️⃣实现代码:frompyechartsimportoptionsasoptsfrompyech</div> </li> <li><a href="/article/1939614671493459968.htm" title="数据结构——Queue队列(C++)" target="_blank">数据结构——Queue队列(C++)</a> <span class="text-muted">Chloe Weewer</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a> <div>目录队列的概述知识基础队列的基本操作队列的存储方式代码实现(C++)类头(Linked_Queue.h)类的方法实现(Linked_Queue.cpp)构造函数拷贝构造函数析构函数判断队列是否为空(empty)入队(push)出队(pop)清空队列(clear)访问队首(front)与队尾(back)操作符重载=获取元素个数(size)练习:约瑟夫问题题目描述输入格式输出格式样例#1样例输入#1样</div> </li> <li><a href="/article/1939614419445149696.htm" title="React系统学习之路" target="_blank">React系统学习之路</a> <span class="text-muted">莲华君</span> <a class="tag" taget="_blank" href="/search/react.js/1.htm">react.js</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>React系统学习之路学习目录第1章:React入门介绍React的基本概念和应用场景安装Node.js和npm创建第一个React应用React的JSX语法组件的基本结构和生命周期第2章:组件与状态管理函数组件与类组件的区别状态(State)和属性(Props)的使用受控组件与非受控组件高阶组件(HOC)的概念和实现使用ContextAPI进行跨层级状态传递第3章:ReactHooksuseSt</div> </li> <li><a href="/article/1939613789125144576.htm" title="Node.js 后端开发:与前端的完美结合" target="_blank">Node.js 后端开发:与前端的完美结合</a> <span class="text-muted"></span> <div>Node.js后端开发:与前端的完美结合关键词:Node.js、后端开发、前后端分离、RESTfulAPI、Express、性能优化、全栈开发摘要:本文深入探讨Node.js在后端开发中的优势及其与前端的完美结合方式。我们将从Node.js的核心特性出发,分析其适合后端开发的原因,详细介绍如何构建高性能的RESTfulAPI服务,探讨前后端分离架构的最佳实践,并通过实际项目案例展示Node.js如</div> </li> <li><a href="/article/1939613536883896320.htm" title="AI人工智能领域知识图谱在深度学习中的应用拓展" target="_blank">AI人工智能领域知识图谱在深度学习中的应用拓展</a> <span class="text-muted"></span> <div>AI人工智能领域知识图谱在深度学习中的应用拓展关键词:知识图谱、深度学习、神经网络、图嵌入、知识表示学习、推理机制、应用场景摘要:本文深入探讨了知识图谱与深度学习的融合应用,系统性地分析了知识图谱在深度学习中的关键技术路径和应用场景。文章首先介绍了知识图谱的基本概念和表示方法,然后详细阐述了知识图谱与深度学习结合的多种技术路线,包括图神经网络、知识嵌入和推理机制等。接着通过具体案例展示了知识图谱增</div> </li> <li><a href="/article/1939613158930968576.htm" title="Python商务数据分析——Matplotlib 数据可视化学习笔记" target="_blank">Python商务数据分析——Matplotlib 数据可视化学习笔记</a> <span class="text-muted">爱吃代码的小皇冠</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/numpy/1.htm">numpy</a><a class="tag" taget="_blank" href="/search/matplotlib/1.htm">matplotlib</a><a class="tag" taget="_blank" href="/search/pandas/1.htm">pandas</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">数据分析</a> <div>一、Matplotlib基础认知1.1库功能与定位核心作用:将数据可视化展示,提升数据直观性与说服力应用场景:绘制折线图、饼图、柱状图等2D/3D图表双接口模式:MATLAB风格:通过pyplot函数快速绘图(自动管理图形对象)面向对象:显式创建Figure和Axes对象(适合复杂绘图)1.2核心对象架构容器类:图(Figure)、坐标系(Axes)、坐标轴(Axis)、刻度(Tick)基础类:线</div> </li> <li><a href="/article/1939612780743159808.htm" title="ROS常用的路径规划算法介绍" target="_blank">ROS常用的路径规划算法介绍</a> <span class="text-muted">Xian-HHappy</span> <a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E4%BA%BA-Robot/1.htm">机器人-Robot</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E4%BA%BA/1.htm">机器人</a><a class="tag" taget="_blank" href="/search/%E8%B7%AF%E5%BE%84%E8%A7%84%E5%88%92/1.htm">路径规划</a><a class="tag" taget="_blank" href="/search/ROS/1.htm">ROS</a> <div>在ROS中,常用的路径规划算法主要有以下几种:全局路径规划算法A*算法:在Dijkstra算法基础上加入启发式函数,如曼哈顿距离或欧氏距离,优先探索靠近目标的节点,效率更高。需使用可容许的启发式函数以保证最优性,其通过配置启发式权重可平衡最优性与速度。在ROS中,nav2_planner中的SmacPlanner支持2D/3D的A*算法。Dijkstra算法:代价地图中的基础路径搜索方法,采用广度</div> </li> <li><a href="/article/1939612276873031680.htm" title="Python爬虫:Requests与Beautiful Soup库详解" target="_blank">Python爬虫:Requests与Beautiful Soup库详解</a> <span class="text-muted">Pu_Nine_9</span> <a class="tag" taget="_blank" href="/search/Python%E7%88%AC%E8%99%AB%E7%9A%84%E5%AD%A6%E4%B9%A0/1.htm">Python爬虫的学习</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/requests/1.htm">requests</a><a class="tag" taget="_blank" href="/search/beautifulsoup/1.htm">beautifulsoup</a> <div>前言在当今数据驱动的时代,网络爬虫成为了获取网络信息的重要工具。Python作为最流行的爬虫语言之一,拥有丰富的库支持。今天我们就来介绍两个最基础也最强大的爬虫库:Requests和BeautifulSoup,并补充关于lxml解析器和RequestsSession的内容。一、Requests库:让HTTP请求变得简单Requests是一个优雅而简单的HTTP库,它让发送HTTP请求变得非常简单,</div> </li> <li><a href="/article/1939612024162021376.htm" title="PyEcharts教程(010):天猫订单数据可视化项目" target="_blank">PyEcharts教程(010):天猫订单数据可视化项目</a> <span class="text-muted">文理棵</span> <a class="tag" taget="_blank" href="/search/Python%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">Python数据分析</a><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E6%81%AF%E5%8F%AF%E8%A7%86%E5%8C%96/1.htm">信息可视化</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">数据分析</a> <div>文章目录1、读取数据2、数据处理3、重复值查看4、缺失值查看5、PyEcharts可视化5.1各个省份的订单量5.2时间序列分析5.3每天订单量统计可视化6、数据下载1、读取数据1️⃣读取数据:importpandasaspdfrompyechartsimportoptionsasoptsfrompyecharts.chartsimportMap,Timeline,Bar,Line,Piedata</div> </li> <li><a href="/article/1939610512086069248.htm" title="React用户交互事件" target="_blank">React用户交互事件</a> <span class="text-muted"></span> <div>在React中处理用户交互事件(如点击、输入、提交等)的方式与原生JavaScript类似,但有一些语法差异和最佳实践。以下是常见交互事件的处理方法及代码示例:一、基本事件处理(点击、输入等)1.点击事件(onClick)importReact,{useState}from'react';constButtonExample=()=>{const[count,setCount]=useState(</div> </li> <li><a href="/article/1939610512585191424.htm" title="Tomcat性能调优指南" target="_blank">Tomcat性能调优指南</a> <span class="text-muted"></span> <div>文章目录一、Tomcat性能调优概述为什么需要调优Tomcat?二、Tomcat架构与性能关键点三、JVM调优1.内存配置优化2.垃圾回收优化3.其他JVM优化参数四、连接器(Connector)调优1.NIOvsAPR/Native2.高级NIO配置五、线程池优化六、会话管理优化1.会话超时配置2.会话持久化选择七、静态资源处理优化1.启用Sendfile2.配置静态资源缓存八、其他优化措施1.</div> </li> <li><a href="/article/1939607488412315648.htm" title="团队研发文化和价值观建设与传承" target="_blank">团队研发文化和价值观建设与传承</a> <span class="text-muted">AI天才研究院</span> <a class="tag" taget="_blank" href="/search/Agentic/1.htm">Agentic</a><a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/%E5%AE%9E%E6%88%98/1.htm">实战</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97/1.htm">计算</a><a class="tag" taget="_blank" href="/search/AI%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E4%B8%8E%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">AI人工智能与大数据</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E7%A7%91%E5%AD%A6/1.htm">计算科学</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E8%AE%A1%E7%AE%97/1.htm">神经计算</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/1.htm">神经网络</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E5%9E%8B%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">大型语言模型</a><a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/AGI/1.htm">AGI</a><a class="tag" taget="_blank" href="/search/LLM/1.htm">LLM</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/1.htm">架构设计</a><a class="tag" taget="_blank" href="/search/Agent/1.htm">Agent</a><a class="tag" taget="_blank" href="/search/RPA/1.htm">RPA</a> <div>团队研发文化和价值观建设与传承1.背景介绍在现代软件开发中,技术的进步和工具的更新固然重要,但团队的研发文化和价值观同样不可忽视。一个高效的团队不仅需要技术上的卓越,还需要在文化和价值观上有一致的认同和传承。本文将深入探讨如何在团队中建立和传承研发文化和价值观,帮助团队在技术和文化上共同进步。2.核心概念与联系2.1研发文化研发文化是指团队在软件开发过程中所遵循的行为准则、工作习惯和价值观。它包括</div> </li> <li><a href="/article/95.htm" title="PHP,安卓,UI,java,linux视频教程合集" target="_blank">PHP,安卓,UI,java,linux视频教程合集</a> <span class="text-muted">cocos2d-x小菜</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/UI/1.htm">UI</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>╔-----------------------------------╗┆                           </div> </li> <li><a href="/article/222.htm" title="zookeeper admin 笔记" target="_blank">zookeeper admin 笔记</a> <span class="text-muted">braveCS</span> <a class="tag" taget="_blank" href="/search/zookeeper/1.htm">zookeeper</a> <div>  Required Software 1) JDK>=1.6 2)推荐使用ensemble的ZooKeeper(至少3台),并run on separate machines 3)在Yahoo!,zk配置在特定的RHEL boxes里,2个cpu,2G内存,80G硬盘   数据和日志目录 1)数据目录里的文件是zk节点的持久化备份,包括快照和事务日</div> </li> <li><a href="/article/349.htm" title="Spring配置多个连接池" target="_blank">Spring配置多个连接池</a> <span class="text-muted">easterfly</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>项目中需要同时连接多个数据库的时候,如何才能在需要用到哪个数据库就连接哪个数据库呢? Spring中有关于dataSource的配置:     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"   &nb</div> </li> <li><a href="/article/476.htm" title="Mysql" target="_blank">Mysql</a> <span class="text-muted">171815164</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。 GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WI TH GRANT OPTION; 如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作</div> </li> <li><a href="/article/603.htm" title="CommonDAO(公共/基础DAO)" target="_blank">CommonDAO(公共/基础DAO)</a> <span class="text-muted">g21121</span> <a class="tag" taget="_blank" href="/search/DAO/1.htm">DAO</a> <div>        好久没有更新博客了,最近一段时间工作比较忙,所以请见谅,无论你是爱看呢还是爱看呢还是爱看呢,总之或许对你有些帮助。         DAO(Data Access Object)是一个数据访问(顾名思义就是与数据库打交道)接口,DAO一般在业</div> </li> <li><a href="/article/730.htm" title="直言有讳" target="_blank">直言有讳</a> <span class="text-muted">永夜-极光</span> <a class="tag" taget="_blank" href="/search/%E6%84%9F%E6%82%9F/1.htm">感悟</a><a class="tag" taget="_blank" href="/search/%E9%9A%8F%E7%AC%94/1.htm">随笔</a> <div>  1.转载地址:http://blog.csdn.net/jasonblog/article/details/10813313   精华: “直言有讳”是阿里巴巴提倡的一种观念,而我在此之前并没有很深刻的认识。为什么呢?就好比是读书时候做阅读理解,我喜欢我自己的解读,并不喜欢老师给的意思。在这里也是。我自己坚持的原则是互相尊重,我觉得阿里巴巴很多价值观其实是基本的做人</div> </li> <li><a href="/article/857.htm" title="安装CentOS 7 和Win 7后,Win7 引导丢失" target="_blank">安装CentOS 7 和Win 7后,Win7 引导丢失</a> <span class="text-muted">随便小屋</span> <a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a> <div>一般安装双系统的顺序是先装Win7,然后在安装CentOS,这样CentOS可以引导WIN 7启动。但安装CentOS7后,却找不到Win7 的引导,稍微修改一点东西即可。 一、首先具有root 的权限。      即进入Terminal后输入命令su,然后输入密码即可 二、利用vim编辑器打开/boot/grub2/grub.cfg文件进行修改 v</div> </li> <li><a href="/article/984.htm" title="Oracle备份与恢复案例" target="_blank">Oracle备份与恢复案例</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a> <div>Oracle备份与恢复案例 一. 理解什么是数据库恢复当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。因此当发生上述故障后,希望能重构这个完整的数据库,该处理称为数据库恢复。恢复过程大致可以分为复原(Restore)与</div> </li> <li><a href="/article/1111.htm" title="JavaEE开源快速开发平台G4Studio v5.0发布" target="_blank">JavaEE开源快速开发平台G4Studio v5.0发布</a> <span class="text-muted">無為子</span> <div>  我非常高兴地宣布,今天我们最新的JavaEE开源快速开发平台G4Studio_V5.0版本已经正式发布。   访问G4Studio网站 http://www.g4it.org   2013-04-06 发布G4Studio_V5.0版本 功能新增 (1). 新增了调用Oracle存储过程返回游标,并将游标映射为Java List集合对象的标</div> </li> <li><a href="/article/1238.htm" title="Oracle显示根据高考分数模拟录取" target="_blank">Oracle显示根据高考分数模拟录取</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/PL%2FSQL%E7%BC%96%E7%A8%8B/1.htm">PL/SQL编程</a><a class="tag" taget="_blank" href="/search/oracle%E4%BE%8B%E5%AD%90/1.htm">oracle例子</a><a class="tag" taget="_blank" href="/search/%E6%A8%A1%E6%8B%9F%E9%AB%98%E8%80%83%E5%BD%95%E5%8F%96/1.htm">模拟高考录取</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E4%BA%A4%E6%B5%81/1.htm">学习交流</a> <div>题目要求: 1,创建student表和result表 2,pl/sql对学生的成绩数据进行处理 3,处理的逻辑是根据每门专业课的最低分线和总分的最低分数线自动的将录取和落选     1,创建student表,和result表 学生信息表; create table student( student_id number primary key,--学生id</div> </li> <li><a href="/article/1365.htm" title="优秀的领导与差劲的领导" target="_blank">优秀的领导与差劲的领导</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/%E9%A2%86%E5%AF%BC/1.htm">领导</a><a class="tag" taget="_blank" href="/search/%E7%AE%A1%E7%90%86/1.htm">管理</a><a class="tag" taget="_blank" href="/search/%E5%9B%A2%E9%98%9F/1.htm">团队</a> <div>责任 优秀的领导:优秀的领导总是对他所负责的项目担负起责任。如果项目不幸失败了,那么他知道该受责备的人是他自己,并且敢于承认错误。 差劲的领导:差劲的领导觉得这不是他的问题,因此他会想方设法证明是他的团队不行,或是将责任归咎于团队中他不喜欢的那几个成员身上。 努力工作 优秀的领导:团队领导应该是团队成员的榜样。至少,他应该与团队中的其他成员一样努力工作。这仅仅因为他</div> </li> <li><a href="/article/1492.htm" title="js函数在浏览器下的兼容" target="_blank">js函数在浏览器下的兼容</a> <span class="text-muted">Bill_chen</span> <a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">浏览器</a><a class="tag" taget="_blank" href="/search/IE/1.htm">IE</a><a class="tag" taget="_blank" href="/search/DWR/1.htm">DWR</a><a class="tag" taget="_blank" href="/search/ext/1.htm">ext</a> <div>  做前端开发的工程师,少不了要用FF进行测试,纯js函数在不同浏览器下,名称也可能不同。对于IE6和FF,取得下一结点的函数就不尽相同:   IE6:node.nextSibling,对于FF是不能识别的;   FF:node.nextElementSibling,对于IE是不能识别的; 兼容解决方式:var Div = node.nextSibl</div> </li> <li><a href="/article/1619.htm" title="【JVM四】老年代垃圾回收:吞吐量垃圾收集器(Throughput GC)" target="_blank">【JVM四】老年代垃圾回收:吞吐量垃圾收集器(Throughput GC)</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6/1.htm">垃圾回收</a> <div>吞吐量与用户线程暂停时间   衡量垃圾回收算法优劣的指标有两个: 吞吐量越高,则算法越好 暂停时间越短,则算法越好 首先说明吞吐量和暂停时间的含义。   垃圾回收时,JVM会启动几个特定的GC线程来完成垃圾回收的任务,这些GC线程与应用的用户线程产生竞争关系,共同竞争处理器资源以及CPU的执行时间。GC线程不会对用户带来的任何价值,因此,好的GC应该占</div> </li> <li><a href="/article/1746.htm" title="J2EE监听器和过滤器基础" target="_blank">J2EE监听器和过滤器基础</a> <span class="text-muted">白糖_</span> <a class="tag" taget="_blank" href="/search/J2EE/1.htm">J2EE</a> <div> Servlet程序由Servlet,Filter和Listener组成,其中监听器用来监听Servlet容器上下文。 监听器通常分三类:基于Servlet上下文的ServletContex监听,基于会话的HttpSession监听和基于请求的ServletRequest监听。   ServletContex监听器 ServletContex又叫application</div> </li> <li><a href="/article/1873.htm" title="博弈AngularJS讲义(16) - 提供者" target="_blank">博弈AngularJS讲义(16) - 提供者</a> <span class="text-muted">boyitech</span> <a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a><a class="tag" taget="_blank" href="/search/api/1.htm">api</a><a class="tag" taget="_blank" href="/search/Angular/1.htm">Angular</a><a class="tag" taget="_blank" href="/search/Provider/1.htm">Provider</a> <div>  Angular框架提供了强大的依赖注入机制,这一切都是有注入器(injector)完成. 注入器会自动实例化服务组件和符合Angular API规则的特殊对象,例如控制器,指令,过滤器动画等。   那注入器怎么知道如何去创建这些特殊的对象呢? Angular提供了5种方式让注入器创建对象,其中最基础的方式就是提供者(provider), 其余四种方式(Value, Fac</div> </li> <li><a href="/article/2000.htm" title="java-写一函数f(a,b),它带有两个字符串参数并返回一串字符,该字符串只包含在两个串中都有的并按照在a中的顺序。" target="_blank">java-写一函数f(a,b),它带有两个字符串参数并返回一串字符,该字符串只包含在两个串中都有的并按照在a中的顺序。</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> public class CommonSubSequence { /** * 题目:写一函数f(a,b),它带有两个字符串参数并返回一串字符,该字符串只包含在两个串中都有的并按照在a中的顺序。 * 写一个版本算法复杂度O(N^2)和一个O(N) 。 * * O(N^2):对于a中的每个字符,遍历b中的每个字符,如果相同,则拷贝到新字符串中。 * O(</div> </li> <li><a href="/article/2127.htm" title="sqlserver 2000 无法验证产品密钥" target="_blank">sqlserver 2000 无法验证产品密钥</a> <span class="text-muted">Chen.H</span> <a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/SQL+Server/1.htm">SQL Server</a><a class="tag" taget="_blank" href="/search/Microsoft/1.htm">Microsoft</a> <div>在 Service Pack 4 (SP 4), 是运行 Microsoft Windows Server 2003、 Microsoft Windows Storage Server 2003 或 Microsoft Windows 2000 服务器上您尝试安装 Microsoft SQL Server 2000 通过卷许可协议 (VLA) 媒体。 这样做, 收到以下错误信息CD KEY的 SQ</div> </li> <li><a href="/article/2254.htm" title="[新概念武器]气象战争" target="_blank">[新概念武器]气象战争</a> <span class="text-muted">comsci</span> <div>        气象战争的发动者必须是拥有发射深空航天器能力的国家或者组织....        原因如下:        地球上的气候变化和大气层中的云层涡旋场有密切的关系,而维持一个在大气层某个层次</div> </li> <li><a href="/article/2381.htm" title="oracle 中 rollup、cube、grouping 使用详解" target="_blank">oracle 中 rollup、cube、grouping 使用详解</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/grouping/1.htm">grouping</a><a class="tag" taget="_blank" href="/search/rollup/1.htm">rollup</a><a class="tag" taget="_blank" href="/search/cube/1.htm">cube</a> <div>oracle 中 rollup、cube、grouping 使用详解 -- 使用oracle 样例表演示 转自namesliu -- 使用oracle 的样列库,演示 rollup, cube, grouping 的用法与使用场景    --- ROLLUP , 为了理解分组的成员数量,我增加了 分组的计数  COUNT(SAL)   </div> </li> <li><a href="/article/2508.htm" title="技术资料汇总分享" target="_blank">技术资料汇总分享</a> <span class="text-muted">Dead_knight</span> <a class="tag" taget="_blank" href="/search/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%96%99%E6%B1%87%E6%80%BB+%E5%88%86%E4%BA%AB/1.htm">技术资料汇总 分享</a> <div>本人汇总的技术资料,分享出来,希望对大家有用。 http://pan.baidu.com/s/1jGr56uE 资料主要包含: Workflow->工作流相关理论、框架(OSWorkflow、JBPM、Activiti、fireflow...) Security->java安全相关资料(SSL、SSO、SpringSecurity、Shiro、JAAS...) Ser</div> </li> <li><a href="/article/2635.htm" title="初一下学期难记忆单词背诵第一课" target="_blank">初一下学期难记忆单词背诵第一课</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/english/1.htm">english</a><a class="tag" taget="_blank" href="/search/word/1.htm">word</a> <div>could 能够 minute 分钟 Tuesday 星期二 February 二月 eighteenth 第十八 listen 听 careful 小心的,仔细的 short 短的 heavy 重的 empty 空的 certainly 当然 carry 携带;搬运 tape 磁带 basket 蓝子 bottle 瓶 juice 汁,果汁 head 头;头部 </div> </li> <li><a href="/article/2762.htm" title="截取视图的图片, 然后分享出去" target="_blank">截取视图的图片, 然后分享出去</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/OS/1.htm">OS</a><a class="tag" taget="_blank" href="/search/Objective-C/1.htm">Objective-C</a> <div>OS 7 has a new method that allows you to draw a view hierarchy into the current graphics context. This can be used to get an UIImage very fast. I implemented a category method on UIView to get the vi</div> </li> <li><a href="/article/2889.htm" title="MySql重置密码" target="_blank">MySql重置密码</a> <span class="text-muted">fanxiaolong</span> <a class="tag" taget="_blank" href="/search/MySql%E9%87%8D%E7%BD%AE%E5%AF%86%E7%A0%81/1.htm">MySql重置密码</a> <div>方法一:  在my.ini的[mysqld]字段加入: skip-grant-tables 重启mysql服务,这时的mysql不需要密码即可登录数据库  然后进入mysql mysql>use mysql;  mysql>更新 user set password=password('新密码') WHERE User='root'; mysq</div> </li> <li><a href="/article/3016.htm" title="Ehcache(03)——Ehcache中储存缓存的方式" target="_blank">Ehcache(03)——Ehcache中储存缓存的方式</a> <span class="text-muted">234390216</span> <a class="tag" taget="_blank" href="/search/ehcache/1.htm">ehcache</a><a class="tag" taget="_blank" href="/search/MemoryStore/1.htm">MemoryStore</a><a class="tag" taget="_blank" href="/search/DiskStore/1.htm">DiskStore</a><a class="tag" taget="_blank" href="/search/%E5%AD%98%E5%82%A8/1.htm">存储</a><a class="tag" taget="_blank" href="/search/%E9%A9%B1%E9%99%A4%E7%AD%96%E7%95%A5/1.htm">驱除策略</a> <div>Ehcache中储存缓存的方式   目录 1     堆内存(MemoryStore) 1.1     指定可用内存 1.2     驱除策略 1.3     元素过期 2   &nbs</div> </li> <li><a href="/article/3143.htm" title="spring mvc中的@propertysource" target="_blank">spring mvc中的@propertysource</a> <span class="text-muted">jackyrong</span> <a class="tag" taget="_blank" href="/search/spring+mvc/1.htm">spring mvc</a> <div>  在spring mvc中,在配置文件中的东西,可以在java代码中通过注解进行读取了: @PropertySource  在spring 3.1中开始引入 比如有配置文件 config.properties mongodb.url=1.2.3.4 mongodb.db=hello 则代码中   @PropertySource(&</div> </li> <li><a href="/article/3270.htm" title="重学单例模式" target="_blank">重学单例模式</a> <span class="text-muted">lanqiu17</span> <a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B/1.htm">单例</a><a class="tag" taget="_blank" href="/search/Singleton/1.htm">Singleton</a><a class="tag" taget="_blank" href="/search/%E6%A8%A1%E5%BC%8F/1.htm">模式</a> <div>最近在重新学习设计模式,感觉对模式理解更加深刻。觉得有必要记下来。 第一个学的就是单例模式,单例模式估计是最好理解的模式了。它的作用就是防止外部创建实例,保证只有一个实例。 单例模式的常用实现方式有两种,就人们熟知的饱汉式与饥汉式,具体就不多说了。这里说下其他的实现方式 静态内部类方式: package test.pattern.singleton.statics; publ</div> </li> <li><a href="/article/3397.htm" title=".NET开源核心运行时,且行且珍惜" target="_blank">.NET开源核心运行时,且行且珍惜</a> <span class="text-muted">netcome</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/1.htm">开源</a> <div>背景 2014年11月12日,ASP.NET之父、微软云计算与企业级产品工程部执行副总裁Scott Guthrie,在Connect全球开发者在线会议上宣布,微软将开源全部.NET核心运行时,并将.NET 扩展为可在 Linux 和 Mac OS 平台上运行。.NET核心运行时将基于MIT开源许可协议发布,其中将包括执行.NET代码所需的一切项目——CLR、JIT编译器、垃圾收集器(GC)和核心</div> </li> <li><a href="/article/3524.htm" title="使用oscahe缓存技术减少与数据库的频繁交互" target="_blank">使用oscahe缓存技术减少与数据库的频繁交互</a> <span class="text-muted">Everyday都不同</span> <a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/%E9%AB%98%E5%B9%B6%E5%8F%91/1.htm">高并发</a><a class="tag" taget="_blank" href="/search/oscahe%E7%BC%93%E5%AD%98/1.htm">oscahe缓存</a> <div>此前一直不知道缓存的具体实现,只知道是把数据存储在内存中,以便下次直接从内存中读取。对于缓存的使用也没有概念,觉得缓存技术是一个比较”神秘陌生“的领域。但最近要用到缓存技术,发现还是很有必要一探究竟的。   缓存技术使用背景:一般来说,对于web项目,如果我们要什么数据直接jdbc查库好了,但是在遇到高并发的情形下,不可能每一次都是去查数据库,因为这样在高并发的情形下显得不太合理——</div> </li> <li><a href="/article/3651.htm" title="Spring+Mybatis 手动控制事务" target="_blank">Spring+Mybatis 手动控制事务</a> <span class="text-muted">toknowme</span> <a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a> <div>@Override    public boolean testDelete(String jobCode) throws Exception {       boolean flag = false;  &nbs</div> </li> <li><a href="/article/3778.htm" title="菜鸟级的android程序员面试时候需要掌握的知识点" target="_blank">菜鸟级的android程序员面试时候需要掌握的知识点</a> <span class="text-muted">xp9802</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>熟悉Android开发架构和API调用 掌握APP适应不同型号手机屏幕开发技巧 熟悉Android下的数据存储  熟练Android Debug Bridge Tool 熟练Eclipse/ADT及相关工具  熟悉Android框架原理及Activity生命周期 熟练进行Android UI布局 熟练使用SQLite数据库; 熟悉Android下网络通信机制,S</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>