dom

什么是 DOM?

DOM 是 W3C(万维网联盟)的标准。

DOM 定义了访问 HTML 和 XML 文档的标准:

"W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。"

W3C DOM 标准被分为 3 个不同的部分:

  • 核心 DOM - 针对任何结构化文档的标准模型
  • XML DOM - 针对 XML 文档的标准模型
  • HTML DOM - 针对 HTML 文档的标准模型

编者注:DOM 是 Document Object Model(文档对象模型)的缩写。

什么是 XML DOM?

XML DOM 定义了所有 XML 元素的对象属性,以及访问它们的方法

什么是 HTML DOM?

HTML DOM 是:

  • HTML 的标准对象模型
  • HTML 的标准编程接口
  • W3C 标准

HTML DOM 定义了所有 HTML 元素的对象属性,以及访问它们的方法

换言之,HTML DOM 是关于如何获取、修改、添加或删除 HTML 元素的标准。

DOM树的结构:

dom_第1张图片

节点父、子和同胞

节点树中的节点彼此拥有层级关系。

我们常用父(parent)子(child)同胞(sibling)等术语来描述这些关系。父节点拥有子节点。同级的子节点被称为同胞(兄弟或姐妹)。

  • 在节点树中,顶端节点被称为根(root)。
  • 每个节点都有父节点、除了根(它没有父节点)。
  • 一个节点可拥有任意数量的子节点。
  • 同胞是拥有相同父节点的节点。

下面的图片展示了节点树的一部分,以及节点之间的关系:

dom_第2张图片

 

请看下面的 HTML 片段:

<html>
  <head>
    <meta charset="utf-8">
    <title>DOM 教程title>
  head>
  <body>
    <h1>DOM 课程1h1>
    <p>Hello world!p>
  body>
html>

 

从上面的 HTML 中:

  • 节点没有父节点;它是根节点
  • 和 的父节点是 节点
  • 文本节点 "Hello world!" 的父节点是

    节点

并且:

  • 节点拥有两个子节点: 和
  • 节点拥有两个子节点: 节点</li> <li><title> 节点也拥有一个子节点:文本节点 "DOM 教程"</li> <li><h1> 和 <p> 节点是同胞节点,同时也是 <body> 的子节点</li> </ul> <p>并且:</p> <ul> <li><head> 元素是 <html> 元素的首个子节点</li> <li><body> 元素是 <html> 元素的最后一个子节点</li> <li><h1> 元素是 <body> 元素的首个子节点</li> <li><p> 元素是 <body> 元素的最后一个子节点</li> </ul> <h2>HTML DOM 对象 - 方法和属性</h2> <p>一些常用的 HTML DOM 方法:</p> <ul> <li>getElementById(id) - 获取带有指定 id 的节点(元素)</li> <li>appendChild(node) - 插入新的子节点(元素)</li> <li>removeChild(node) - 删除子节点(元素)</li> </ul> <p>一些常用的 HTML DOM 属性:</p> <ul> <li>innerHTML - 节点(元素)的文本值</li> <li>parentNode - 节点(元素)的父节点</li> <li>childNodes - 节点(元素)的子节点</li> <li>attributes - 节点(元素)的属性节点</li> </ul> <p> </p> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1181145704551206912"></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">你可能感兴趣的:(dom)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1900533738048122880.htm" title="Vue.js 3 的设计思路:从声明式UI到高效渲染机制" target="_blank">Vue.js 3 的设计思路:从声明式UI到高效渲染机制</a> <span class="text-muted">前端 贾公子</span> <a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/ui/1.htm">ui</a><a class="tag" taget="_blank" href="/search/flutter/1.htm">flutter</a> <div>目录一、声明式UI与虚拟DOM的灵活性二、渲染器:虚拟DOM到真实DOM的桥梁三、组件的本质与实现四、编译与运行时的协同优化五、性能与可维护性的权衡总结Vue.js3作为新一代前端框架,其设计理念在声明式UI描述、虚拟DOM优化、组件化架构以及编译与运行时协作等方面实现了显著突破。本文将从多个角度深入探讨其设计思路。一、声明式UI与虚拟DOM的灵活性Vue.js3的核心特性之一是声明式UI描述,开</div> </li> <li><a href="/article/1900508759512379392.htm" title="Web 开发的“三件套”" target="_blank">Web 开发的“三件套”</a> <span class="text-muted">zhangpeng455547940</span> <a class="tag" taget="_blank" href="/search/Web%E5%BC%80%E5%8F%91/1.htm">Web开发</a><a class="tag" taget="_blank" href="/search/react/1.htm">react</a><a class="tag" taget="_blank" href="/search/native/1.htm">native</a><a class="tag" taget="_blank" href="/search/react.js/1.htm">react.js</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>HTML:定义内容结构。CSS:控制样式布局。JavaScript:实现动态行为和复杂逻辑。JavaScript应用场景前端开发:操作DOM、处理用户事件、实现动画等。后端开发:通过Node.js构建服务器端应用。跨平台开发:Electron(桌面应用)、ReactNative(移动端)等。</div> </li> <li><a href="/article/1900494630277935104.htm" title="VNode" target="_blank">VNode</a> <span class="text-muted">码农 小王</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>1.什么是VNode?VNode的全称是VirtualNode,也就是虚拟节点.它是指一个抽象的节点对象,用于描述真实DOM中的元素。在前端框架中,通过操作VNode来实现虚拟DOM,从而提高性能。2.VNode的本质本质上是JavaScript对象,这个对象就是更加轻量级的对DOM的描述3.为什么需要VNode?在前端框架中,我们通常需要在页面中操作DOM元素,如增删改查等操作。但是DOM操作是</div> </li> <li><a href="/article/1900489337112424448.htm" title="JavaScript的学习6——jQuery" target="_blank">JavaScript的学习6——jQuery</a> <span class="text-muted">十五春会</span> <div>文章目录jQuery选择器按ID查找按tag查找按class查找按属性查找组合查找多项选择器练习层级选择器子选择器(ChildSelector)过滤器(Filter)表单相关练习查找和过滤操作DOM修改Text和HTML修改CSS显示和隐藏DOM获取DOM信息操作表单修改DOM结构添加DOM删除节点练习事件鼠标事件键盘事件其他事件事件参数取消绑定事件触发条件浏览器安全限制练习动画show/hide</div> </li> <li><a href="/article/1900484416136867840.htm" title="ueditor图片上传跨域问题" target="_blank">ueditor图片上传跨域问题</a> <span class="text-muted">hello_simon</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/ueditor/1.htm">ueditor</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E7%89%87%E4%B8%8A%E4%BC%A0%E8%B7%A8%E5%9F%9F/1.htm">图片上传跨域</a> <div>ueditor置于A域,图片置于B域,B域需放flash跨域策略文件crossdomain.xml,如下修改ueditor配置文件ueditor.config.js//图片上传配置区,imageUrl:"http://abupload.xxx.com/imageUp.php"//图片上传提交地址,imagePath:"http://abupload.xxx.com/"</div> </li> <li><a href="/article/1900409007764467712.htm" title="【漫话机器学习系列】137.随机搜索(Randomized Search)" target="_blank">【漫话机器学习系列】137.随机搜索(Randomized Search)</a> <span class="text-muted">IT古董</span> <a class="tag" taget="_blank" href="/search/%E6%BC%AB%E8%AF%9D%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%B3%BB%E5%88%97%E4%B8%93%E8%BE%91/1.htm">漫话机器学习系列专辑</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/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>随机搜索(RandomizedSearch)详解在机器学习和深度学习的模型训练过程中,超参数调优(HyperparameterTuning)是至关重要的一环。随机搜索(RandomizedSearch)是一种高效的超参数优化方法,它通过在候选超参数的数值分布(如正态分布、均匀分布等)中随机选择超参数组合,从而找到最优的超参数配置。1.超参数调优的必要性超参数是模型在训练之前需要人为设定的参数,例如</div> </li> <li><a href="/article/1900380753909313536.htm" title="领域驱动设计(DDD)深度解析:从小白到入门" target="_blank">领域驱动设计(DDD)深度解析:从小白到入门</a> <span class="text-muted">月落星还在</span> <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/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>一、为什么要学DDD?——从现实问题说起假设你参与开发一个电商系统,需求如下:用户下单时,需检查库存、计算优惠、生成订单同一商品的库存信息分散在商品服务、订单服务、促销服务中开发过程中频繁出现「订单金额计算逻辑冲突」「库存状态不一致」等问题传统开发方式的问题:需求直接映射为数据库表结构业务逻辑散落在Service层技术实现主导设计,业务语义模糊此时,领域驱动设计(Domain-DrivenDesi</div> </li> <li><a href="/article/1900369658939240448.htm" title="GoogleTest学习实践" target="_blank">GoogleTest学习实践</a> <span class="text-muted">郭涤生</span> <a class="tag" taget="_blank" href="/search/c%2Fc%2B%2B/1.htm">c/c++</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</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/%E5%8A%9F%E8%83%BD%E6%B5%8B%E8%AF%95/1.htm">功能测试</a> <div>第1步:环境安装与配置对于Linux系统#安装编译依赖sudoapt-getinstallbuild-essentialcmakelibgtest-dev#编译安装cd/usr/src/gtestsudocmakeCMakeLists.txtsudomakesudocp*.a/usr/libCMake集成示例cmake_minimum_required(VERSION3.14)project(My</div> </li> <li><a href="/article/1900277879846006784.htm" title="MetaGPT零基础极速入门:手把手教你打造AI虚拟公司" target="_blank">MetaGPT零基础极速入门:手把手教你打造AI虚拟公司</a> <span class="text-muted">Julian.zhou</span> <a class="tag" taget="_blank" href="/search/MetaGPT/1.htm">MetaGPT</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/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>MetaGPT是什么?为什么突然爆火?MetaGPT是由中国团队开发的多智能体协作框架,仅需1个需求,自动生成完整软件项目!它能模拟真实IT公司流程,自动分解任务、编写代码、生成文档,GitHub狂揽18k+星!官网:https://www.deepwisdom.ai/源码地址:https://github.com/geekan/MetaGPTMetaGPT能做什么?一句需求,可以让模拟的一个团队</div> </li> <li><a href="/article/1900226371897061376.htm" title="深度掌握 ReactJS 高级概念:前端开发者必备" target="_blank">深度掌握 ReactJS 高级概念:前端开发者必备</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AFjavascript/1.htm">前端javascript</a> <div>ReactHook深入浅出CSS技巧与案例详解vue2与vue3技巧合集VueUse源码解读这篇文章汇总了ReactJS中值得深入研究的高级概念。读完后,不仅在前端面试中能更胸有成竹,还能自行开发一个类似ReactJS的UI库。目录Rendering的含义与过程Re-rendering发生的机制及原因VirtualDOM的原理Reconciliation算法的运行方式ReactJS的性能优化方案1</div> </li> <li><a href="/article/1900224060852334592.htm" title="JavaScript性能优化实战" target="_blank">JavaScript性能优化实战</a> <span class="text-muted">仰望丨苍穹</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%EF%BC%9A%E6%8A%80%E5%B7%A7%E4%B8%8E%E5%AE%9E%E8%B7%B5/1.htm">前端:技巧与实践</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>深入探讨JavaScript性能瓶颈,分享优化技巧与最佳实践:性能瓶颈DOM操作开销大:DOM操作往往是JavaScript性能的一个关键瓶颈。每次对DOM进行访问、修改或创建,都可能触发浏览器的重排(reflow)和重绘(repaint)操作。例如频繁地使用innerHTML修改元素内容,或者大量地动态创建DOM节点,都会导致性能问题。全局作用域查找慢:在JavaScript中,变量的查找是从当</div> </li> <li><a href="/article/1900223430771404800.htm" title="JavaScript性能优化实战:从瓶颈分析到高效编码策略" target="_blank">JavaScript性能优化实战:从瓶颈分析到高效编码策略</a> <span class="text-muted">AAEllisonPang</span> <a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>一、性能瓶颈分析:从问题出发1.1常见性能问题类型渲染阻塞:同步脚本加载导致DOMContentLoaded延迟内存泄漏:未解绑的事件监听、闭包引用残留重复计算:高频触发的回调函数无节制运算布局抖动:强制同步布局(ForcedSynchronousLayout)网络瓶颈:未优化的资源加载策略典型案例:某电商网站商品筛选功能,用户选择规格时界面卡顿。经分析发现每次选择都会触发全量DOM重新渲染,导致</div> </li> <li><a href="/article/1900216122167324672.htm" title="n-tier(层)架构" target="_blank">n-tier(层)架构</a> <span class="text-muted">神经兮兮的小饼</span> <a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84%E7%9F%A5%E8%AF%86/1.htm">架构知识</a> <div>一,不断要去改。二来还得快。就必须要用n-tier(层)模式开发。这样我就可以把分工分得很细。需要改动时,可以一步到位,找到需要改动的地方,而且还可以非常快。n-tier架构,把model细化分成了几层。现在继续把其中的服务层(service)细化,变成service层调用BO(BusinessObject)层,BO层调用DO(domainobject)层。1、DO(domainobject)DO</div> </li> <li><a href="/article/1900089406497288192.htm" title="今天记录一下哈希表,因为一直有点不理解,所以今天查找了一些资料来理解哈希表" target="_blank">今天记录一下哈希表,因为一直有点不理解,所以今天查找了一些资料来理解哈希表</a> <span class="text-muted">suohanfjiusbis</span> <a class="tag" taget="_blank" href="/search/%E6%95%A3%E5%88%97%E8%A1%A8/1.htm">散列表</a><a class="tag" taget="_blank" href="/search/leetcode/1.htm">leetcode</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a> <div>classSolution:defcopyRandomList(self,head:'Optional[Node]')->'Optional[Node]':ifnothead:returndic={}cur=headwhilecur:dic[cur]=Node(cur.val)cur=cur.nextcur=headwhilecur:dic[cur].next=dic.get(cur.next)d</div> </li> <li><a href="/article/1900009840164532224.htm" title="前端-webpack一些常用配置的作用" target="_blank">前端-webpack一些常用配置的作用</a> <span class="text-muted">大嘴史努比</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/webpack/1.htm">webpack</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a> <div>1.LoaderLoader用于对模块的源代码进行转换。它可以将非JavaScript文件(如CSS、图片、字体等)转换为webpack能够处理的模块。常用Loader及其作用Loader作用babel-loader将ES6+代码转换为ES5,兼容旧版浏览器。css-loader解析CSS文件,处理@import和url()等语法。style-loader将CSS插入到DOM中,通过标签生效。sa</div> </li> <li><a href="/article/1899985249060843520.htm" title="angular自定义指令" target="_blank">angular自定义指令</a> <span class="text-muted">~ rainbow~</span> <a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/%E5%AE%9E%E7%94%A8%E6%8A%80%E5%B7%A7/1.htm">实用技巧</a><a class="tag" taget="_blank" href="/search/angular.js/1.htm">angular.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>1、什么是指令?官方文档的解释:指令是为Angular应用程序中的元素添加额外行为的类。使用Angular的内置指令,你可以管理表单、列表、样式以及要让用户看到的任何内容。2、指令的分类1)组件——带有模板的指令。这种指令类型是最常见的指令类型。2)属性型指令——更改元素、组件或其他指令的外观或行为的指令。3)结构型指令——通过添加和删除DOM元素来更改DOM布局的指令。内置属性指令:内置指令只会</div> </li> <li><a href="/article/1899977810198458368.htm" title="Ubuntu22.04安装数据" target="_blank">Ubuntu22.04安装数据</a> <span class="text-muted">@-wyy</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>数据库安装步骤:sudoapt-getupdatesudoaptinstallmysql-servermysql-clientsudosystemctlstartmysqlsudosystemctlstatusmysql(1)在命令行登录MySQL数据库,并使用mysql数据库(必须使用这个库,因为root在这里面)sudomysql-uroot-pusemysql(2)修改连接权限,执行:upd</div> </li> <li><a href="/article/1899974913654059008.htm" title="Angular指令" target="_blank">Angular指令</a> <span class="text-muted">lvxinaidou</span> <a class="tag" taget="_blank" href="/search/Angular/1.htm">Angular</a><a class="tag" taget="_blank" href="/search/TypeScript/1.htm">TypeScript</a><a class="tag" taget="_blank" href="/search/angular.js/1.htm">angular.js</a><a class="tag" taget="_blank" href="/search/typescript/1.htm">typescript</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>1.上面是指令指令是为Angular应用程序中的元素添加额外行为的类。使用Angular的内置指令,你可以管理表单、列表、样式以及要让用户看到的任何内容。2.指令分类Angular指令的不同类型如下:组件——带有模板的指令。这种指令类型是最常见的指令类型。属性型指令——更改元素、组件或其他指令的外观或行为的指令。结构型指令——通过添加和删除DOM元素来更改DOM布局的指令。内置属性指令:ngCla</div> </li> <li><a href="/article/1899967593205264384.htm" title="如何制作代码" target="_blank">如何制作代码</a> <span class="text-muted">一一代码</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>importturtleimportrandom设置屏幕screen=turtle.Screen()screen.bgcolor("black")screen.title("烟花效果")创建烟花firework=turtle.Turtle()firework.shape("circle")firework.color("white")firework.speed(0)firework.penup(</div> </li> <li><a href="/article/1899957004168916992.htm" title="Vue输入框获取焦点" target="_blank">Vue输入框获取焦点</a> <span class="text-muted">冰淇淋@</span> <a class="tag" taget="_blank" href="/search/vue/1.htm">vue</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>1.元素未渲染完成如果你在组件挂载或数据更新后立即调用focus(),可能元素还未渲染到DOM中,导致focus()失效。解决方法:确保在元素渲染完成后再调用focus()。可以使用nextTick确保DOM更新完成。2.ref未正确绑定确保ref正确绑定到目标元素上。3.元素不可聚焦不是所有HTML元素都支持focus()方法。确保目标元素是input、textarea、button等可聚焦元素</div> </li> <li><a href="/article/1899946798890414080.htm" title="JS事件冒泡和事件捕获" target="_blank">JS事件冒泡和事件捕获</a> <span class="text-muted">一朵好运莲</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在JavaScript中,事件冒泡(EventBubbling)和事件捕获(EventCapturing)是两种不同的事件传播机制。当你在DOM元素上注册事件时,事件的触发并不会立即发生,而是会按照一定的顺序进行传播。事件的传播机制决定了事件如何从目标元素传递到DOM树中的其他元素。目录事件捕获和事件冒泡的提出为什么整合了捕获和冒泡机制?事件传播的顺序具体例子实现事件捕获和事件冒泡的提出事件冒泡最</div> </li> <li><a href="/article/1899942005442670592.htm" title="浅谈React的Diff算法,简单易懂!" target="_blank">浅谈React的Diff算法,简单易懂!</a> <span class="text-muted">赵小左</span> <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><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/react.js/1.htm">react.js</a><a class="tag" taget="_blank" href="/search/diff%E7%AE%97%E6%B3%95/1.htm">diff算法</a> <div>react16之前,主要是通过递归遍历Vdom树来查找不同。对有变化的部分重新生成真实的DOM。在react16之后,则是引入了新的架构Fiber架构,在Reconciler(协调器)中会进行Diff算法。流程如下:第一次渲染的时候,不进行diff,而是直接将vdom转成Fiber,在内存中构workInProgressFiber树,构建完成之后用它来替换currenFiber,再去通知渲染器进行</div> </li> <li><a href="/article/1899931157324165120.htm" title="那些让人瞳孔地震的代码艺术:程序员の精神污染实录" target="_blank">那些让人瞳孔地震的代码艺术:程序员の精神污染实录</a> <span class="text-muted">苏小简</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E9%BB%91%E9%AD%94%E6%B3%95/1.htm">编程黑魔法</a><a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81%E7%AC%91%E8%AF%9D/1.htm">代码笑话</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%80%85%E8%BF%B7%E6%83%91%E8%A1%8C%E4%B8%BA/1.htm">开发者迷惑行为</a> <div>一、█▓颠覆认知の空间折叠术▓█①禁止套娃の俄罗斯轮盘赌#薛定谔的递归:每次运行都可能崩溃或成功importrandomdefroulette(n):ifrandom.randint(0,10)>n:returnroulette(n+1)#程序员の赌徒谬误print("幸存!"ifn{console.log(现在);//输出:穿越前的旧时间let现在=Date.now();},1000);魔幻现实</div> </li> <li><a href="/article/1899926998214569984.htm" title="Vue循环动态生成标签--小白教学" target="_blank">Vue循环动态生成标签--小白教学</a> <span class="text-muted">兢兢业业的小白鼠</span> <a class="tag" taget="_blank" href="/search/%E6%97%A5%E5%B8%B8%E7%BB%83%E4%B9%A0/1.htm">日常练习</a><a class="tag" taget="_blank" href="/search/ajax/1.htm">ajax</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>今天写代码,使用Vue从数据库中动态获取数据,循环生成到页面。一直都会用,今天好好捋一下思路。一:定义属性首先在Vue实例中定义集合用于接收数据。注意:如果使用组件则必须使用data()回调函数。这点涉及到vue的虚拟DOM树,有兴趣的可以去看一下,这里就不赘述了。//我这里使用的是组件,使用data回调函数data(){return{//newList是自定义的名字newList:[]}}//如</div> </li> <li><a href="/article/1899926620181950464.htm" title="单元测试-vitest笔记" target="_blank">单元测试-vitest笔记</a> <span class="text-muted">小天呐</span> <a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/vitest/1.htm">vitest</a> <div>一、关于测试1、测试分类单元测试:unittest集成测试端对端测试:e2e2、通用测试框架:jestvitest只能做js、ts测试。运行环境是node,没有dom和window如果需要测试dom,需要安装jsdom,用于在node环境中模拟dom二、vitest1、基本使用安装npmivitest-D配置启动命令"scripts":{"test":"vitest"}新建以.spec.ts或.t</div> </li> <li><a href="/article/1899897368640286720.htm" title="Ubuntu、CentOs更换源(阿里云的源)" target="_blank">Ubuntu、CentOs更换源(阿里云的源)</a> <span class="text-muted">C000kie</span> <a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a><a class="tag" taget="_blank" href="/search/%E9%98%BF%E9%87%8C%E4%BA%91/1.htm">阿里云</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>ubuntu备份当前的apt配置文件sudomv/etc/apt/sources.list/etc/apt/sources.list.backup编辑配置文件,将以下内容写到文件中sudovi/etc/apt/sources.listdebhttps://mirrors.aliyun.com/ubuntu/focalmainrestricteduniversemultiversedeb-srcht</div> </li> <li><a href="/article/1899759055941988352.htm" title="个人怎么申请自己的域名邮箱?" target="_blank">个人怎么申请自己的域名邮箱?</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a> <div>在互联网时代,拥有一个属于自己的域名邮箱(如yourname@yourdomain.com)不仅能提升个人形象,还能让沟通更专业化。相比普通的免费邮箱,域名邮箱更具个性化和可信度。那么,个人如何申请自己的域名邮箱呢?本文将以通俗易懂的语言,带你一步步了解申请流程,并以Zoho邮箱为例,帮助你快速上手。什么是域名邮箱?在开始之前,我们先简单了解一下什么是域名邮箱。域名邮箱是基于你自己的域名(如you</div> </li> <li><a href="/article/1899739281413435392.htm" title="【大数据入门】第三章·数据预处理" target="_blank">【大数据入门】第三章·数据预处理</a> <span class="text-muted">十二月的猫</span> <a class="tag" taget="_blank" href="/search/%E3%80%8A%E5%B0%8F%E7%99%BD%E8%AF%BB%E9%80%8FAI%E5%8E%9F%E7%90%86%E3%80%8B/1.htm">《小白读透AI原理》</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/%E5%A4%A7%E6%95%B0%E6%8D%AE%E5%85%A5%E9%97%A8/1.htm">大数据入门</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%85%A5%E9%97%A8/1.htm">人工智能入门</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%A4%84%E7%90%86/1.htm">数据处理</a> <div>个人主页:十二月的猫-CSDN博客系列专栏:《小白读透AI原理》_十二月的猫的博客-CSDN博客十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光目录1.前言2.为什么要进行数据预处理2.1脏数据3.数据预处理分类4.数据清理4.1数据填充4.1.1数据缺失的类型1.完全随机缺失(MissingCompletelyatRandom,MCAR)2.随机缺失(MissingatRandom</div> </li> <li><a href="/article/1899693341075894272.htm" title="Websoft9 运维面板,全网真正的一键部署应用" target="_blank">Websoft9 运维面板,全网真正的一键部署应用</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4%E8%BF%90%E7%BB%B4%E8%87%AA%E5%8A%A8%E5%8C%96/1.htm">运维运维自动化</a> <div>一、传统部署的复杂性:以WordPress为例的技术拆解手动部署的典型步骤(耗时约2小时):#1.安装LAMP环境sudoaptinstallapache2mysql-serverphplibapache2-mod-phpphp-mysql#2.配置MySQL(需交互式设置root密码、创建数据库)sudomysql_secure_installationmysql-uroot-p-e"CREAT</div> </li> <li><a href="/article/1899674248931241984.htm" title="Ollama设置拉取模型本地保存路径和监听端口" target="_blank">Ollama设置拉取模型本地保存路径和监听端口</a> <span class="text-muted">奔跑中的小象</span> <a class="tag" taget="_blank" href="/search/ai/1.htm">ai</a><a class="tag" taget="_blank" href="/search/ollama/1.htm">ollama</a> <div>在service配置文件中添加环境变量Environment具体操作如下:1.创建保存模型目录文件夹sudomkdir/home/xyh/data/ollama/modelssudochmod777/home/xyh/data/ollama/models2.修改service配置并添加环境变量Environmentsudovi/etc/systemd/system/ollama.service#将</div> </li> <li><a href="/article/119.htm" title="Spring中@Value注解,需要注意的地方" target="_blank">Spring中@Value注解,需要注意的地方</a> <span class="text-muted">无量</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/bean/1.htm">bean</a><a class="tag" taget="_blank" href="/search/%40Value/1.htm">@Value</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a> <div>Spring 3以后,支持@Value注解的方式获取properties文件中的配置值,简化了读取配置文件的复杂操作 1、在applicationContext.xml文件(或引用文件中)中配置properties文件 <bean id="appProperty" class="org.springframework.beans.fac</div> </li> <li><a href="/article/246.htm" title="mongoDB 分片" target="_blank">mongoDB 分片</a> <span class="text-muted">开窍的石头</span> <a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a> <div>    mongoDB的分片。要mongos查询数据时候 先查询configsvr看数据在那台shard上,configsvr上边放的是metar信息,指的是那条数据在那个片上。由此可以看出mongo在做分片的时候咱们至少要有一个configsvr,和两个以上的shard(片)信息。     第一步启动两台以上的mongo服务 &nb</div> </li> <li><a href="/article/373.htm" title="OVER(PARTITION BY)函数用法" target="_blank">OVER(PARTITION BY)函数用法</a> <span class="text-muted">0624chenhong</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a> <div>这篇写得很好,引自 http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html OVER(PARTITION BY)函数用法 2010年10月26日 OVER(PARTITION BY)函数介绍 开窗函数        &nb</div> </li> <li><a href="/article/500.htm" title="Android开发中,ADB server didn't ACK 解决方法" target="_blank">Android开发中,ADB server didn't ACK 解决方法</a> <span class="text-muted">一炮送你回车库</span> <a class="tag" taget="_blank" href="/search/Android%E5%BC%80%E5%8F%91/1.htm">Android开发</a> <div>首先通知:凡是安装360、豌豆荚、腾讯管家的全部卸载,然后再尝试。   一直没搞明白这个问题咋出现的,但今天看到一个方法,搞定了!原来是豌豆荚占用了 5037 端口导致。 参见原文章:一个豌豆荚引发的血案——关于ADB server didn't ACK的问题 简单来讲,首先将Windows任务进程中的豌豆荚干掉,如果还是不行,再继续按下列步骤排查。 &nb</div> </li> <li><a href="/article/627.htm" title="canvas中的像素绘制问题" target="_blank">canvas中的像素绘制问题</a> <span class="text-muted">换个号韩国红果果</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/canvas/1.htm">canvas</a> <div>pixl的绘制,1.如果绘制点正处于相邻像素交叉线,绘制x像素的线宽,则从交叉线分别向前向后绘制x/2个像素,如果x/2是整数,则刚好填满x个像素,如果是小数,则先把整数格填满,再去绘制剩下的小数部分,绘制时,是将小数部分的颜色用来除以一个像素的宽度,颜色会变淡。所以要用整数坐标来画的话(即绘制点正处于相邻像素交叉线时),线宽必须是2的整数倍。否则会出现不饱满的像素。 2.如果绘制点为一个像素的</div> </li> <li><a href="/article/754.htm" title="编码乱码问题" target="_blank">编码乱码问题</a> <span class="text-muted">灵静志远</span> <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/jsp/1.htm">jsp</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A0%81/1.htm">编码</a> <div>1、JVM中单个字符占用的字节长度跟编码方式有关,而默认编码方式又跟平台是一一对应的或说平台决定了默认字符编码方式;2、对于单个字符:ISO-8859-1单字节编码,GBK双字节编码,UTF-8三字节编码;因此中文平台(中文平台默认字符集编码GBK)下一个中文字符占2个字节,而英文平台(英文平台默认字符集编码Cp1252(类似于ISO-8859-1))。 3、getBytes()、getByte</div> </li> <li><a href="/article/881.htm" title="java 求几个月后的日期" target="_blank">java 求几个月后的日期</a> <span class="text-muted">darkranger</span> <a class="tag" taget="_blank" href="/search/calendar/1.htm">calendar</a><a class="tag" taget="_blank" href="/search/getinstance/1.htm">getinstance</a> <div>Date plandate = planDate.toDate(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = Calendar.getInstance(); cal.setTime(plandate); // 取得三个月后时间 cal.add(Calendar.M</div> </li> <li><a href="/article/1008.htm" title="数据库设计的三大范式(通俗易懂)" target="_blank">数据库设计的三大范式(通俗易懂)</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%A4%8D%E4%B9%A0/1.htm">数据库复习</a> <div>关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。数据库的设计范式是数据库设计所需要满足的规范。只有理解数据库的设计范式,才能设计出高效率、优雅的数据库,否则可能会设计出错误的数据库. 目前,主要有六种范式:第一范式、第二范式、第三范式、BC范式、第四范式和第五范式。满足最低要求的叫第一范式,简称1NF。在第一范式基础上进一步满足一些要求的为第二范式,简称2NF。其余依此类推。</div> </li> <li><a href="/article/1135.htm" title="想学工作流怎么入手" target="_blank">想学工作流怎么入手</a> <span class="text-muted">atongyeye</span> <a class="tag" taget="_blank" href="/search/jbpm/1.htm">jbpm</a> <div>工作流在工作中变得越来越重要,很多朋友想学工作流却不知如何入手。 很多朋友习惯性的这看一点,那了解一点,既不系统,也容易半途而废。好比学武功,最好的办法是有一本武功秘籍。研究明白,则犹如打通任督二脉。 系统学习工作流,很重要的一本书《JBPM工作流开发指南》。 本人苦苦学习两个月,基本上可以解决大部分流程问题。整理一下学习思路,有兴趣的朋友可以参考下。 1  首先要</div> </li> <li><a href="/article/1262.htm" title="Context和SQLiteOpenHelper创建数据库" target="_blank">Context和SQLiteOpenHelper创建数据库</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/Context%E5%88%9B%E5%BB%BA%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">Context创建数据库</a> <div>       一直以为安卓数据库的创建就是使用SQLiteOpenHelper创建,但是最近在android的一本书上看到了Context也可以创建数据库,下面我们一起分析这两种方式创建数据库的方式和区别,重点在SQLiteOpenHelper     一:SQLiteOpenHelper创建数据库:   1,SQLi</div> </li> <li><a href="/article/1389.htm" title="浅谈group by和distinct" target="_blank">浅谈group by和distinct</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</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/group+by/1.htm">group by</a><a class="tag" taget="_blank" href="/search/distinct/1.htm">distinct</a> <div>        group by和distinct只了去重意义一样,但是group by应用范围更广泛些,如分组汇总或者从聚合函数里筛选数据等。         譬如:统计每id数并且只显示数大于3 select id ,count(id) from ta</div> </li> <li><a href="/article/1516.htm" title="vi opertion" target="_blank">vi opertion</a> <span class="text-muted">征客丶</span> <a class="tag" taget="_blank" href="/search/mac/1.htm">mac</a><a class="tag" taget="_blank" href="/search/opration/1.htm">opration</a><a class="tag" taget="_blank" href="/search/vi/1.htm">vi</a> <div>进入 command mode (命令行模式) 按 esc 键 再按 shift + 冒号 注:以下命令中 带 $ 【在命令行模式下进行】,不带 $ 【在非命令行模式下进行】 一、文件操作 1.1、强制退出不保存 $ q! 1.2、保存 $ w 1.3、保存并退出 $ wq 1.4、刷新或重新加载已打开的文件 $ e 二、光标移动 2.1、跳到指定行 数字</div> </li> <li><a href="/article/1643.htm" title="【Spark十四】深入Spark RDD第三部分RDD基本API" target="_blank">【Spark十四】深入Spark RDD第三部分RDD基本API</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/spark/1.htm">spark</a> <div>  对于K/V类型的RDD,如下操作是什么含义?   val rdd = sc.parallelize(List(("A",3),("C",6),("A",1),("B",5)) rdd.reduceByKey(_+_).collect  reduceByKey在这里的操作,是把</div> </li> <li><a href="/article/1770.htm" title="java类加载机制" target="_blank">java类加载机制</a> <span class="text-muted">BlueSkator</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%99%9A%E6%8B%9F%E6%9C%BA/1.htm">虚拟机</a> <div>java类加载机制 1.java类加载器的树状结构 引导类加载器 ^ | 扩展类加载器 ^ | 系统类加载器 java使用代理模式来完成类加载,java的类加载器也有类似于继承的关系,引导类是最顶层的加载器,它是所有类的根加载器,它负责加载java核心库。当一个类加载器接到装载类到虚拟机的请求时,通常会代理给父类加载器,若已经是根加载器了,就自己完成加载。 虚拟机区分一个Cla</div> </li> <li><a href="/article/1897.htm" title="动态添加文本框" target="_blank">动态添加文本框</a> <span class="text-muted">BreakingBad</span> <a class="tag" taget="_blank" href="/search/%E6%96%87%E6%9C%AC%E6%A1%86/1.htm">文本框</a> <div>  <script>     var num=1; function AddInput() {      var str="";     str+="<input </div> </li> <li><a href="/article/2024.htm" title="读《研磨设计模式》-代码笔记-单例模式" target="_blank">读《研磨设计模式》-代码笔记-单例模式</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ public class Singleton { } /* * 懒汉模式。注意,getInstance如果在多线程环境中调用,需要加上synchronized,否则存在线程不安全问题 */ class LazySingleton</div> </li> <li><a href="/article/2151.htm" title="iOS应用打包发布常见问题" target="_blank">iOS应用打包发布常见问题</a> <span class="text-muted">chenhbc</span> <a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a><a class="tag" taget="_blank" href="/search/iOS%E5%8F%91%E5%B8%83/1.htm">iOS发布</a><a class="tag" taget="_blank" href="/search/iOS%E4%B8%8A%E4%BC%A0/1.htm">iOS上传</a><a class="tag" taget="_blank" href="/search/iOS%E6%89%93%E5%8C%85/1.htm">iOS打包</a> <div>这个月公司安排我一个人做iOS客户端开发,由于急着用,我先发布一个版本,由于第一次发布iOS应用,期间出了不少问题,记录于此。   1、使用Application Loader 发布时报错:Communication error.please use diagnostic mode to check connectivity.you need to have outbound acc</div> </li> <li><a href="/article/2278.htm" title="工作流复杂拓扑结构处理新思路" target="_blank">工作流复杂拓扑结构处理新思路</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E4%BC%81%E4%B8%9A%E5%BA%94%E7%94%A8/1.htm">企业应用</a><a class="tag" taget="_blank" href="/search/OO/1.htm">OO</a> <div> 我们走的设计路线和国外的产品不太一样,不一样在哪里呢?  国外的流程的设计思路是通过事先定义一整套规则(类似XPDL)来约束和控制流程图的复杂度(我对国外的产品了解不够多,仅仅是在有限的了解程度上面提出这样的看法),从而避免在流程引擎中处理这些复杂的图的问题,而我们却没有通过事先定义这样的复杂的规则来约束和降低用户自定义流程图的灵活性,这样一来,在引擎和流程流转控制这一个层面就会遇到很</div> </li> <li><a href="/article/2405.htm" title="oracle 11g新特性Flashback data archive" target="_blank">oracle 11g新特性Flashback data archive</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a> <div>1. 什么是flashback data archive Flashback data archive是oracle 11g中引入的一个新特性。Flashback archive是一个新的数据库对象,用于存储一个或多表的历史数据。Flashback archive是一个逻辑对象,概念上类似于表空间。实际上flashback archive可以看作是存储一个或多个表的所有事务变化的逻辑空间。 </div> </li> <li><a href="/article/2532.htm" title="多叉树:2-3-4树" target="_blank">多叉树:2-3-4树</a> <span class="text-muted">dieslrae</span> <a class="tag" taget="_blank" href="/search/%E6%A0%91/1.htm">树</a> <div>    平衡树多叉树,每个节点最多有4个子节点和3个数据项,2,3,4的含义是指一个节点可能含有的子节点的个数,效率比红黑树稍差.一般不允许出现重复关键字值.2-3-4树有以下特征:     1、有一个数据项的节点总是有2个子节点(称为2-节点)     2、有两个数据项的节点总是有3个子节点(称为3-节</div> </li> <li><a href="/article/2659.htm" title="C语言学习七动态分配 malloc的使用" target="_blank">C语言学习七动态分配 malloc的使用</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/language/1.htm">language</a><a class="tag" taget="_blank" href="/search/malloc/1.htm">malloc</a> <div>/* 2013年3月15日15:16:24 malloc 就memory(内存) allocate(分配)的缩写 本程序没有实际含义,只是理解使用 */ # include <stdio.h> # include <malloc.h> int main(void) { int i = 5; //分配了4个字节 静态分配 int * p </div> </li> <li><a href="/article/2786.htm" title="Objective-C编码规范[译]" target="_blank">Objective-C编码规范[译]</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83/1.htm">代码规范</a> <div>  原文链接 : The official raywenderlich.com Objective-C style guide 原文作者 : raywenderlich.com Team 译文出自 : raywenderlich.com Objective-C编码规范 译者 : Sam Lau </div> </li> <li><a href="/article/2913.htm" title="0.性能优化-目录" target="_blank">0.性能优化-目录</a> <span class="text-muted">frank1234</span> <a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a> <div>从今天开始笔者陆续发表一些性能测试相关的文章,主要是对自己前段时间学习的总结,由于水平有限,性能测试领域很深,本人理解的也比较浅,欢迎各位大咖批评指正。 主要内容包括: 一、性能测试指标 吞吐量、TPS、响应时间、负载、可扩展性、PV、思考时间 http://frank1234.iteye.com/blog/2180305 二、性能测试策略 生产环境相同 基准测试 预热等 htt</div> </li> <li><a href="/article/3040.htm" title="Java父类取得子类传递的泛型参数Class类型" target="_blank">Java父类取得子类传递的泛型参数Class类型</a> <span class="text-muted">happyqing</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%B3%9B%E5%9E%8B/1.htm">泛型</a><a class="tag" taget="_blank" href="/search/%E7%88%B6%E7%B1%BB/1.htm">父类</a><a class="tag" taget="_blank" href="/search/%E5%AD%90%E7%B1%BB/1.htm">子类</a><a class="tag" taget="_blank" href="/search/Class/1.htm">Class</a> <div>  import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import org.junit.Test; abstract class BaseDao<T> { public void getType() { //Class<E> clazz =</div> </li> <li><a href="/article/3167.htm" title="跟我学SpringMVC目录汇总贴、PDF下载、源码下载" target="_blank">跟我学SpringMVC目录汇总贴、PDF下载、源码下载</a> <span class="text-muted">jinnianshilongnian</span> <a class="tag" taget="_blank" href="/search/springMVC/1.htm">springMVC</a> <div>  ----广告-------------------------------------------------------------- 网站核心商详页开发 掌握Java技术,掌握并发/异步工具使用,熟悉spring、ibatis框架; 掌握数据库技术,表设计和索引优化,分库分表/读写分离; 了解缓存技术,熟练使用如Redis/Memcached等主流技术; 了解Ngin</div> </li> <li><a href="/article/3294.htm" title="the HTTP rewrite module requires the PCRE library" target="_blank">the HTTP rewrite module requires the PCRE library</a> <span class="text-muted">流浪鱼</span> <a class="tag" taget="_blank" href="/search/rewrite/1.htm">rewrite</a> <div>./configure: error: the HTTP rewrite module requires the PCRE library. 模块依赖性Nginx需要依赖下面3个包 1. gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/ ) 2. rewrite 模块需要 pcre 库 ( 下载: http://www.pcre.org/ ) 3. s</div> </li> <li><a href="/article/3421.htm" title="第12章 Ajax(中)" target="_blank">第12章 Ajax(中)</a> <span class="text-muted">onestopweb</span> <a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a> <div>index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/</div> </li> <li><a href="/article/3548.htm" title="Optimize query with Query Stripping in Web Intelligence" target="_blank">Optimize query with Query Stripping in Web Intelligence</a> <span class="text-muted">blueoxygen</span> <a class="tag" taget="_blank" href="/search/BO/1.htm">BO</a> <div>http://wiki.sdn.sap.com/wiki/display/BOBJ/Optimize+query+with+Query+Stripping+in+Web+Intelligence and a very straightfoward video http://www.sdn.sap.com/irj/scn/events?rid=/library/uuid/40ec3a0c-936</div> </li> <li><a href="/article/3675.htm" title="Java开发者写SQL时常犯的10个错误" target="_blank">Java开发者写SQL时常犯的10个错误</a> <span class="text-muted">tomcat_oracle</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a> <div>1、不用PreparedStatements   有意思的是,在JDBC出现了许多年后的今天,这个错误依然出现在博客、论坛和邮件列表中,即便要记住和理解它是一件很简单的事。开发者不使用PreparedStatements的原因可能有如下几个:   他们对PreparedStatements不了解   他们认为使用PreparedStatements太慢了   他们认为写Prepar</div> </li> <li><a href="/article/3802.htm" title="世纪互联与结盟有感" target="_blank">世纪互联与结盟有感</a> <span class="text-muted">阿尔萨斯</span> <div> 10月10日,世纪互联与(Foxcon)签约成立合资公司,有感。 全球电子制造业巨头(全球500强企业)与世纪互联共同看好IDC、云计算等业务在中国的增长空间,双方迅速果断出手,在资本层面上达成合作,此举体现了全球电子制造业巨头对世纪互联IDC业务的欣赏与信任,另一方面反映出世纪互联目前良好的运营状况与广阔的发展前景。 众所周知,精于电子产品制造(世界第一),对于世纪互联而言,能够与结盟</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>