可视化讲解 DOM 构建过程

打个小广告:
如果你想获取更多前端干货、鹅厂工程师的前端面试指南,
欢迎关注我的个人微信公众号:
前端夜谈

可视化讲解 DOM 构建过程

前言

最近在看 Secrets of the JavaScript Ninja, 书中第二章讲到 DOM 的构建流程.

记得我之前也为理解 DOM 构建流程查阅过数次资料, 虽然每次查阅完都觉得 DOM 构建流程很简单, 看完便懂, 但是懂了又忘还是让人有些头疼.

为了给自己加深印象, 也为了为大家提供一个可视化的理解 DOM 构建过程的方式, 笔者制作了一个简单的网页来动态演示 DOM 构建过程. 希望能给大家带来一些帮助.

效果

在线查看

在线 demo (请使用 pc 访问)

前进, 后退

网页展示了一个简单的 HTML 页面的 DOM 渲染过程. 用户点击前进,后退按钮时, 页面左侧会显示出当前的 HTML 代码, 右侧则会显示出实时的 DOM 结构图:

可视化讲解 DOM 构建过程_第1张图片
forward and backword

自动播放

点击 Auto Play 按钮, 页面会自动播放页面的整个构建过程:

可视化讲解 DOM 构建过程_第2张图片
auto play

DOM 构建过程

DOM 元素的作用 & 基本构建过程:

这里直接引用一下原文:

The goal of this page-building phase is to set up the UI of a web application, and this is done in two distinct steps:
1 Parsing the HTML and building the Document Object Model (DOM)
2 Executing JavaScript code
Step 1 is performed when the browser is processing HTML nodes, and step 2 is > performed whenever a special type of HTML element—the script element (that > contains or
refers to JavaScript code)—is encountered. During the page-building phase, the browser
can switch between these two steps as many times as necessary.

浏览器 页面构建 步骤的目的是为 UI 渲染做准备, 页面构建是由下面两部分购成的:

  • 解析 HTML 节点, 并且构建 DOM 元素
  • 执行 JavaScript 代码

其中第一步在浏览器解析到 HTML 节点时执行, 第二步在解析到 script 标签时执行. 在页面构建的过程中, 以上两步可以无数次的交替执行.

It’s important to emphasize that, although the HTML and the DOM are closely
linked, with the DOM being constructed from HTML, they aren’t one and the same.
You should think of the HTML code as a blueprint the browser follows when > constructing the initial DOM—the UI—of the page. The browser can even fix > problems that it finds with this blueprint in order to create a valid DOM.

需要注意的是, 虽然 HTML 和 DOM 两者关系紧密(DOM 是由 HTML 文件构建而来), 但他们并不是相同的. 你应该将 HTML 看作是浏览器用来渲染 DOM 元素(页面 UI) 的蓝图. 浏览器甚至可以可以修复这个蓝图(HTML)中的问题, 并构建出有效的 DOM.

下面用可视化讲解中的步骤依次讲解:

首先看看我们想要渲染的 HTML 代码:



    
      Web app lifecycle
      
    
    
        

head one

    接下来按照浏览器的构建顺序来看:

    首先浏览器遇到下面这段代码, 解析出 html 节点作为 DOM 的根节点:

    
    
    
    可视化讲解 DOM 构建过程_第3张图片
    step 1

    接下来是 标签, 将其放置在 html 节点下:

    可视化讲解 DOM 构建过程_第4张图片
    step 2

    继续解析, 遇到 </code> 标签, 因为其是 <code><head></code> 的子标签, 故将其放置在 <strong>head</strong> 节点下.</p> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 584px;"> <div class="image-view"> <a href="http://img.e-com-net.com/image/info10/b2205876d4864c51b9f035c6961208fd.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info10/b2205876d4864c51b9f035c6961208fd.jpg" width="650" height="206" alt="可视化讲解 DOM 构建过程_第5张图片" style="border:1px solid black;"></a> </div> </div> <div class="image-caption"> step 3 </div> </div> <p>然后是 <code><style></code> 标签, 类似的, 放在 <strong>head</strong> 节点下:</p> <pre><code class="html"><style> #list { color: green;} #second { color: red;} </style> </code></pre> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 617px;"> <div class="image-view"> <a href="http://img.e-com-net.com/image/info10/3ff01565f503446caf574aa3d61dd5ee.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info10/3ff01565f503446caf574aa3d61dd5ee.jpg" width="650" height="219" alt="可视化讲解 DOM 构建过程_第6张图片" style="border:1px solid black;"></a> </div> </div> <div class="image-caption"> step 4 </div> </div> <p>接下来解析到 <code><body></code> 标签, 因其为 <code><html></code> 的子标签, 故将其放置在 <strong>html</strong> 节点下:</p> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 587px;"> <div class="image-view"> <a href="http://img.e-com-net.com/image/info10/662d134f32aa486e92397c011bdad74e.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info10/662d134f32aa486e92397c011bdad74e.jpg" width="650" height="207" alt="可视化讲解 DOM 构建过程_第7张图片" style="border:1px solid black;"></a> </div> </div> <div class="image-caption"> step 5 </div> </div> <p>然后是 <code><h1></code> 标签, 放置在 <strong>body</strong> 节点下:</p> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 596px;"> <div class="image-view"> <a href="http://img.e-com-net.com/image/info10/44fb8f11c91f4e689fc82eb164e00385.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info10/44fb8f11c91f4e689fc82eb164e00385.jpg" width="650" height="211" alt="可视化讲解 DOM 构建过程_第8张图片" style="border:1px solid black;"></a> </div> </div> <div class="image-caption"> step 6 </div> </div> <p>继续, <code><ul></code> 标签, 同样的, 放置在 <strong>body</strong> 节点下:</p> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 274px;"> <div class="image-view"> <a href="http://img.e-com-net.com/image/info10/7d93a4050c854e7c8508259642557940.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info10/7d93a4050c854e7c8508259642557940.jpg" width="650" height="254" alt="可视化讲解 DOM 构建过程_第9张图片" style="border:1px solid black;"></a> </div> </div> <div class="image-caption"> step 7 </div> </div> <p>接下来, 浏览器遇到了 <code><script></code> 标签, 根据前面的知识我们知道, 浏览器会停下来并执行<code><script></code> 中的代码. 所以下面这段代码会被立即执行:</p> <pre><code class="html"><script> var liElement = document.createElement("li"); liElement.textContent = 'I am a li'; document.getElementById('list').appendChild(liElement); </script> </code></pre> <p>这段代码的逻辑是: 向 <strong>id</strong> 为 <strong>list</strong> 的 DOM 节点添加一个 <strong>li</strong> 作为子元素, 故执行完成后 DOM 树会是这样:</p> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 274px;"> <div class="image-view"> <a href="http://img.e-com-net.com/image/info10/992fd4124baf44a99c78cd7645dfc462.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info10/992fd4124baf44a99c78cd7645dfc462.jpg" width="650" height="254" alt="可视化讲解 DOM 构建过程_第10张图片" style="border:1px solid black;"></a> </div> </div> <div class="image-caption"> step 7 </div> </div> <p>最后, 浏览器会解析到 <code><body/></html></code> 等标签, 结束解析过程. 最终我们得到的 DOM 结构如图:</p> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 266px;"> <div class="image-view"> <a href="http://img.e-com-net.com/image/info10/90328721fd5a446891ef1c706d3215bb.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info10/90328721fd5a446891ef1c706d3215bb.jpg" width="650" height="247" alt="可视化讲解 DOM 构建过程_第11张图片" style="border:1px solid black;"></a> </div> </div> <div class="image-caption"> step 9 </div> </div> <h2>后记</h2> <p>预计我会将 <em>Secrets of the JavaScript Ninja</em> 后续章节中的一些知识点也通过类似的方式进行可视化.</p> <p>如果你也有希望能做成<strong>可视化讲解</strong>的: <strong>知识点</strong>, <strong>算法</strong>, <strong>技术原理</strong>, 欢迎在下面留言与我交流, 期待大家的反馈 :)</p> <p>演示页面用到的技术为: Vue, D3.js, 欢迎 fork & star<br> Github 地址</p> <h2>想继续了解 D3.js</h2> <p>这里是我的 <em>D3.js</em> 、 <em>数据可视化</em> 相关博客的 github 地址, 欢迎 fork & star :tada:</p> <p>D3-blog</p> <h2>如果觉得不错的话, 不妨点击下面的链接关注一下 : )</h2> <p>github 主页</p> <p>知乎专栏</p> <p>掘金</p> </article> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1402258867210997760"></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/1891761524674981888.htm" title="P1294 高手去散步" target="_blank">P1294 高手去散步</a> <span class="text-muted">wwjjjww</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E4%BC%98%E5%85%88/1.htm">深度优先</a> <div>题目背景高手最近谈恋爱了。不过是单相思。“即使是单相思,也是完整的爱情”,高手从未放弃对它的追求。今天,这个阳光明媚的早晨,太阳从西边缓缓升起。于是它找到高手,希望在晨读开始之前和高手一起在鳌头山上一起散步。高手当然不会放弃这次梦寐以求的机会,他已经准备好了一切。题目描述鳌头山上有n个观景点,观景点两两之间有游步道共m条。高手的那个它,不喜欢太刺激的过程,因此那些没有路的观景点高手是不会选择去的。</div> </li> <li><a href="/article/1891756102001946624.htm" title="Spring Boot 整合 Kafka 详解" target="_blank">Spring Boot 整合 Kafka 详解</a> <span class="text-muted">码农爱java</span> <a class="tag" taget="_blank" href="/search/Kafka/1.htm">Kafka</a><a class="tag" taget="_blank" href="/search/Kafka/1.htm">Kafka</a><a class="tag" taget="_blank" href="/search/MQ/1.htm">MQ</a><a class="tag" taget="_blank" href="/search/Spring/1.htm">Spring</a><a class="tag" taget="_blank" href="/search/Boot/1.htm">Boot</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a><a class="tag" taget="_blank" href="/search/%E4%B8%AD%E9%97%B4%E4%BB%B6/1.htm">中间件</a><a class="tag" taget="_blank" href="/search/1024%E7%A8%8B%E5%BA%8F%E5%91%98%E8%8A%82/1.htm">1024程序员节</a> <div>前言:上一篇分享了Kafka的一些基本概念及应用场景,本篇我们来分享一下在SpringBoot项目中如何使用Kafka。Kafka系列文章传送门Kafka简介及核心概念讲解SpringBoot集成Kafka引入Kafka依赖在项目的pom.xml文件中引入Kafka依赖,如下:org.springframework.cloudspring-cloud-starter-stream-kafka3.1</div> </li> <li><a href="/article/1891754841236107264.htm" title="PyWebIo 快速构建web应用" target="_blank">PyWebIo 快速构建web应用</a> <span class="text-muted">java全套学习资料</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/npm/1.htm">npm</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>Part1什么是PyWebIoPyWebIO提供了一系列命令式的交互函数来在浏览器上获取用户输入和进行输出,将浏览器变成了一个“富文本终端”,可以用于构建简单的Web应用或基于浏览器的GUI应用。使用PyWebIO,开发者能像编写终端脚本一样(基于input和print进行交互)来编写应用,无需具备HTML和JS的相关知识;PyWebIO还可以方便地整合进现有的Web服务。非常适合快速构建对UI要</div> </li> <li><a href="/article/1891753957890519040.htm" title="Maven 与 Spring Boot 项目的集成" target="_blank">Maven 与 Spring Boot 项目的集成</a> <span class="text-muted">drebander</span> <a class="tag" taget="_blank" href="/search/Maven/1.htm">Maven</a><a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>在Java开发中,Maven和SpringBoot是最常见的工具和框架。Maven用于构建和管理项目的依赖,而SpringBoot提供了简化的Spring应用开发方式。将Maven和SpringBoot集成,可以帮助我们更高效地构建和部署SpringBoot应用。本文将介绍如何将Maven与SpringBoot集成,并通过Maven构建和管理SpringBoot项目。1.什么是SpringBoot</div> </li> <li><a href="/article/1891753579648184320.htm" title="基于python sanic框架,使用Nacos进行微服务管理" target="_blank">基于python sanic框架,使用Nacos进行微服务管理</a> <span class="text-muted">一醉千秋</span> <a class="tag" taget="_blank" href="/search/python%2B%E9%93%B6%E6%B2%B3%E9%BA%92%E9%BA%9F/1.htm">python+银河麒麟</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a> <div>微服务软件系统构建方式,已经很普及了,通过开源的sanic进行微服务管理,便捷,技术也比较成熟,而在项目实际应用过程中,微服务类型不仅有java的,还有nodejs、python等,尤其是结合算法模型构建的python接口,需要在Nacos进行注册管理。本文内容耗时2天踏坑,亲测一切ok。参考资源Docker安装nacos(图文并茂,避免踩坑,一步到位)_docker创建nacos容器需要挂载哪些</div> </li> <li><a href="/article/1891748785181224960.htm" title="使用Python和OpenAI Whisper实现YouTube视频转文字及问答系统" target="_blank">使用Python和OpenAI Whisper实现YouTube视频转文字及问答系统</a> <span class="text-muted">llzwxh888</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/whisper/1.htm">whisper</a><a class="tag" taget="_blank" href="/search/%E9%9F%B3%E8%A7%86%E9%A2%91/1.htm">音视频</a> <div>使用Python和OpenAIWhisper实现YouTube视频转文字及问答系统引言在当今的AI时代,从视频内容中提取有价值的信息变得越来越重要。本文将介绍如何使用Python和OpenAIWhisperAPI将YouTube视频转换为文本,并基于此构建一个简单的问答系统。这个过程不仅能帮助我们更好地理解和分析视频内容,还能为进一步的自然语言处理任务奠定基础。主要内容1.环境准备首先,我们需要安</div> </li> <li><a href="/article/1891744374254006272.htm" title="安装本地jar到仓库" target="_blank">安装本地jar到仓库</a> <span class="text-muted">dingchengyu</span> <a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a> <div>在开发过程中出现一些自定义包或无法远程下载的jar包,可以通过手动安装的方式将jar包安装到本地仓库共项目使用如:axisaxis-ant1.4.RELEASE安装命令:mvninstall:install-file-Dfile=jar包的位置-DgroupId=上面的groupId-DartifactId=上面的artifactId-Dversion=上面的version-Dpackaging=</div> </li> <li><a href="/article/1891742986514001920.htm" title="在职场中,如何利用比较优势,让自己步步高升?" target="_blank">在职场中,如何利用比较优势,让自己步步高升?</a> <span class="text-muted">晏小北</span> <a class="tag" taget="_blank" href="/search/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</a><a class="tag" taget="_blank" href="/search/%E6%B1%82%E8%81%8C%E6%8B%9B%E8%81%98/1.htm">求职招聘</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E6%96%B9%E6%B3%95/1.htm">学习方法</a><a class="tag" taget="_blank" href="/search/%E7%A7%91%E6%8A%80/1.htm">科技</a> <div>芯片工程师,聊聊如何用比较优势,指导自己的职场生活。先说一个随处可见的思想钢印。很多人将交易,当成一场零和博弈。一方获益,必然伴随另一方受损。事实并非如此。一场自由交易,是买卖双方都获益的过程。想象你我生活在一万年前,我擅长打猎,你擅长用火。我可以打到兔子,却只能生吃。你虽然会取火,却没有猎物,只能饿肚子。于是我们懵懵懂懂地达成约定,我将猎物分享给你,你负责烤熟,我们一同享用。通过这原始的自由交易</div> </li> <li><a href="/article/1891740714824429568.htm" title="pnpm、npm、yarn 包管理工具『优劣对比』及『环境迁移』" target="_blank">pnpm、npm、yarn 包管理工具『优劣对比』及『环境迁移』</a> <span class="text-muted">「已注销」</span> <a class="tag" taget="_blank" href="/search/npm/1.htm">npm</a> <div>前言博主在开发前端网站的时候,发现随着开发的项目的逐渐增多,安装的依赖包越来越臃肿,依赖包的安装速度也是非常越来越慢,多项目开发管理也是比较麻烦。之前我就了解过pnpm,但是当时担心更换包管理环境可能会出现的依赖等问题,并且也没有急切的需求,所以当时并没有立即更换综上所述,随着上面问题的出现,更换包管理环境也逐渐提上日程,所以本文主要将会简单对比pnpm和npm/yarn,并且详细讲解如何在多项目</div> </li> <li><a href="/article/1891736305839173632.htm" title="深入理解 Java 模板模式:代码复用与架构优化的利器" target="_blank">深入理解 Java 模板模式:代码复用与架构优化的利器</a> <span class="text-muted">疯狂的键盘侠</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/java/1.htm">java</a><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>深入理解Java模板模式:代码复用与架构优化的利器在Java编程世界中,设计模式如同智慧的结晶,帮助开发者应对各种复杂的软件开发需求。其中,模板模式(TemplatePattern)以其独特的代码复用和流程标准化能力,成为构建灵活且可维护系统的关键工具。今天,让我们一同深入探究Java中的模板模式。一、模板模式:概念初窥模板模式属于行为型设计模式,它定义了一个操作中的算法骨架,将一些步骤延迟到子类</div> </li> <li><a href="/article/1891736178227474432.htm" title="现代域架构" target="_blank">现代域架构</a> <span class="text-muted">JNI_42020487</span> <a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a> <div>现在的域架构,特别是在WindowsServer环境中,已经经过了显著的发展和变化,从早期的WindowsNT和Windows2000时代的简单结构发展为现代的ActiveDirectory(AD)架构。以下是当前域架构的关键特点和组成部分:1.ActiveDirectory域服务(ADDS)ActiveDirectoryDomainServices(简称ADDS)是WindowsServer中最</div> </li> <li><a href="/article/1891735296341504000.htm" title="DeepSeek与医院电子病历的深度融合路径:本地化和上云差异化分析" target="_blank">DeepSeek与医院电子病历的深度融合路径:本地化和上云差异化分析</a> <span class="text-muted">Allen_LVyingbo</span> <a class="tag" taget="_blank" href="/search/%E5%8C%BB%E7%96%97%E9%AB%98%E6%95%88%E7%BC%96%E7%A8%8B%E7%A0%94%E5%8F%91/1.htm">医疗高效编程研发</a><a class="tag" taget="_blank" href="/search/%E5%81%A5%E5%BA%B7%E5%8C%BB%E7%96%97/1.htm">健康医疗</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84/1.htm">系统架构</a><a class="tag" taget="_blank" href="/search/deepseek/1.htm">deepseek</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B/1.htm">大模型</a> <div>一、引言1.1研究背景与意义在医疗信息化快速发展的当下,电子病历系统已成为医院信息管理的核心构成。电子病历(EMR)系统,是指医务人员在医疗活动过程中,使用医疗机构信息系统生成的文字、符号、图标、图形、数据、影像等数字化信息,并能实现存储、管理、传输和重现的医疗记录,是病历的一种记录形式。它承载着患者从初诊到治疗结束的所有关键信息,涵盖症状描述、检查结果、诊断结论、治疗方案等内容。电子病历系统的重</div> </li> <li><a href="/article/1891735169971318784.htm" title="Yarn 常见问题及排查指南" target="_blank">Yarn 常见问题及排查指南</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/yarn/1.htm">yarn</a> <div>介绍Yarn是一个高效、可靠的JavaScript依赖管理工具,但在使用过程中,可能会遇到各种问题。本文总结了一些常见的Yarn错误及其排查方法,帮助你快速定位并解决问题。1.网络相关问题❌错误1:网络超时errorAnunexpectederroroccurred:"https://registry.yarnpkg.com/...:ETIMEDOUT".可能原因✅网络不稳定,导致请求超时✅公司或</div> </li> <li><a href="/article/1891734034288013312.htm" title="实用教程:用微服务搭建你的2025项目" target="_blank">实用教程:用微服务搭建你的2025项目</a> <span class="text-muted">zxzy_org</span> <a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>微服务架构为构建现代化项目提供了灵活且高效的解决方案。在2025年,如果你计划采用微服务搭建项目,可以参考以下步骤:首先,明确项目的核心需求,合理划分服务边界。一个好的微服务设计需要确保服务粒度适中,不会因为服务过细而增加不必要的复杂性。接着,选择合适的技术栈,主流的语言如Java、Python和GoLang依然是微服务开发的首选。其次,容器化部署是必不可少的步骤,Docker和Kubernete</div> </li> <li><a href="/article/1891733906697285632.htm" title="破解云原生架构疑难杂症:2025年全解决方案" target="_blank">破解云原生架构疑难杂症:2025年全解决方案</a> <span class="text-muted">zxzy03</span> <a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a> <div>云原生架构的应用近年来已成为技术界的热点,然而其复杂性和多样性也带来了不少挑战。从应用迁移到服务治理,企业在采用云原生架构时常会面临性能瓶颈、安全隐患以及成本不可控等问题。2025年的全解决方案中,云服务提供商推出了更多专注于优化云原生架构的工具和服务。例如,自动化的微服务部署工具让开发者可以更快速地构建和部署应用,同时实现资源的高效利用。此外,针对安全性的疑难杂症,新方案整合了零信任架构和实时威</div> </li> <li><a href="/article/1891730372471877632.htm" title="企业如何构建 “有韧性”的防反勒索制度体系?" target="_blank">企业如何构建 “有韧性”的防反勒索制度体系?</a> <span class="text-muted">科技云报道</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E5%8F%8D%E5%8B%92%E7%B4%A2/1.htm">反勒索</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a> <div>随着企业数字化转型步伐的加快,勒索攻击与数据采集等黑灰产活动日益呈现出专业化的新趋势。勒索攻击不再是千篇一律的病毒攻击,而是逐渐走向APT化、定制化,如供应链攻击、社会工程攻击以及AI驱动的新型攻击等,其攻击路径愈发复杂且多变,给网络安全带来了前所未有的挑战。在此背景下,传统的防御策略已显得力不从心。因此,企业应与时俱进,转变防御思维,不仅要构建坚实的预防体系,更要具备反勒索的主动出击能力。深耕网</div> </li> <li><a href="/article/1891728096042741760.htm" title="10分钟搭建钉钉DeepSeek AI助手:无代码实现智能对话" target="_blank">10分钟搭建钉钉DeepSeek AI助手:无代码实现智能对话</a> <span class="text-muted">ivwdcwso</span> <a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E9%92%89%E9%92%89/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/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/DeepSeek/1.htm">DeepSeek</a><a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a> <div>引言DeepSeek最近发布了两款先进的AI模型:V3和R1。其中V3适用于对话AI和内容生成等通用场景,R1则专注于编程和数学等推理任务。借助阿里云百炼提供的DeepSeek模型API,我们可以轻松实现与DeepSeek的对话功能。本文将详细介绍如何使用阿里云AppFlow在钉钉中快速配置DeepSeekAI助手,整个过程无需编写代码,10分钟即可完成。一、创建钉钉应用©ivwdcwso(ID:</div> </li> <li><a href="/article/1891727718341472256.htm" title="码农避坑指南:Python编程全领域易错点深度剖析与解决方案" target="_blank">码农避坑指南:Python编程全领域易错点深度剖析与解决方案</a> <span class="text-muted">tekin</span> <a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E8%AF%AF%E5%8C%BA/1.htm">编程误区</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/%E4%BB%A3%E7%A0%81%E8%B4%A8%E9%87%8F/1.htm">代码质量</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%AE%89%E5%85%A8/1.htm">数据安全</a><a class="tag" taget="_blank" href="/search/%E7%89%B9%E5%AE%9A%E9%A2%86%E5%9F%9F%E7%BC%96%E7%A8%8B/1.htm">特定领域编程</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E6%8A%80%E5%B7%A7/1.htm">开发技巧</a> <div>在编程世界中,无论是新手还是经验丰富的开发者,都难免陷入各种误区。从Python多线程的使用到微服务架构的管理,每个编程领域都隐藏着容易被忽视的陷阱。这些误区不仅影响代码性能、可读性和维护性,还可能带来安全隐患。本文将深入剖析编程全领域的易错点,通过实际案例和详细讲解,为你提供全面的解决方案,助你避开这些“坑”,编写出更高效、更安全、更易维护的代码。编程语言特性与最佳实践Python多线程与GIL</div> </li> <li><a href="/article/1891725194897190912.htm" title="Docker安装pypiserver私服" target="_blank">Docker安装pypiserver私服</a> <span class="text-muted">MasonYyp</span> <a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>Docker安装pypiserver私服1简介Python开源包管理工具有pypiserver、devpi和Nexus等,pypiserver安装部署比较简单,性能也不错。搭建pypiserver私服,可以自己构建镜像,也可以使用官网的docker镜像。#Github地址https://github.com/pypiserver/pypiserver2安装使用docker安装pypiserver#</div> </li> <li><a href="/article/1891724438278303744.htm" title="Win11 配置 TeXstudio 编辑器教程" target="_blank">Win11 配置 TeXstudio 编辑器教程</a> <span class="text-muted">『₣λ¥√≈üĐ』</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E8%BE%91%E5%99%A8/1.htm">编辑器</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1/1.htm">数学建模</a><a class="tag" taget="_blank" href="/search/%E8%AE%BA%E6%96%87%E7%AC%94%E8%AE%B0/1.htm">论文笔记</a> <div>以下是关于在Windows11系统上配置TeXstudio编辑器以使用LaTeX的教程。文章从安装必要的组件到实际测试的过程进行了详细的说明。一、简介在Windows11上使用LaTeX需要完成以下两步:选择一个TeX发行版并安装(本文以TeXLive为例,推荐从清华大学镜像站下载)。选择并安装LaTeX编辑器(本文选择TeXstudio)。二、TeXLive安装本文使用的TeXLive是最新版,</div> </li> <li><a href="/article/1891717242995929088.htm" title="写好C/C++代码,大学生必读:林锐博士的《高质量 C++/C 编程指南》" target="_blank">写好C/C++代码,大学生必读:林锐博士的《高质量 C++/C 编程指南》</a> <span class="text-muted">晚风る</span> <a class="tag" taget="_blank" href="/search/C%5CC%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/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a> <div>作为一名大学生,我深知在学习编程的过程中,写出高质量的代码是多么重要。最近,我读了林锐博士的《高质量C++/C编程指南》,这本书让我受益匪浅,今天想和大家分享一下我的学习心得。目录一、初识《高质量C++/C编程指南》二、书中的精华内容(一)编程规范与代码风格(二)内存管理(三)函数设计(四)类的构造函数、析构函数与赋值函数三、我的学习与实践四、收获与感悟五、推荐与分享一、初识《高质量C++/C编程</div> </li> <li><a href="/article/1891716990213615616.htm" title="破解微服务疑难杂症:2025年全解决方案" target="_blank">破解微服务疑难杂症:2025年全解决方案</a> <span class="text-muted">zxzy_org</span> <a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>微服务架构已经成为现代软件开发的主流选择,其优势在于能够将复杂的系统拆分为独立的服务模块,方便开发和维护。然而,在微服务的实施过程中,开发者往往会面临许多挑战,如服务间通信、数据一致性、性能优化和故障处理等问题。2025年的全解决方案主要集中在以下几个方面:首先,通过使用先进的服务网格(ServiceMesh)技术,可以显著简化服务间通信和负载均衡管理,同时增强了服务的可观测性和安全性。其次,在数</div> </li> <li><a href="/article/1891713595545284608.htm" title="Jackson ObjectMapper" target="_blank">Jackson ObjectMapper</a> <span class="text-muted"></span> <div>背景在最近写邓白氏项目的时候遇到一个需求,就是JSON字符串和Java对象之间相互转换,这就是涉及到数据反序列化。概述JacksonObjectMapper是Java中处理JSON数据的强大工具,具有以下主要功能:JSON与Java对象的相互转换:ObjectMapper可以将JSON数据转换为Java对象,以及将Java对象转换为JSON格式。这种转换过程称为序列化和反序列化。通过ObjectM</div> </li> <li><a href="/article/1891712839324856320.htm" title="静态NodeList 和 动态NodeList的区别" target="_blank">静态NodeList 和 动态NodeList的区别</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>ps:了解这个知识点的原因前两天我在重温jsdom编程的时候,看到了获取dom元素这一章,然后看到了getElementsByTagName()和getElementsByClassName(),之后又了解到了现代浏览器新出的一个DOMAPI--querySelectorAll().以我的性格,看到这些方法之后我肯定是想了解一下它们的不同点啦,所以我就翻阅资料,就看到了stackoverflow上</div> </li> <li><a href="/article/1891711817881808896.htm" title="【数据可视化】数据可视化看板需求梳理模板(含示例)" target="_blank">【数据可视化】数据可视化看板需求梳理模板(含示例)</a> <span class="text-muted">L-ololois</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%8F%AF%E8%A7%86%E5%8C%96/1.htm">数据可视化</a> <div>一、模板设计一个数据可视化看板需要从多个方面梳理需求,以确保看板能够有效地传达信息并满足用户的需求。以下是一些关键方面:1.目标和受众●明确目标:确定看板的主要目的,例如监控业务指标、分析市场趋势、展示项目进度等。●了解受众:明确看板的受众是谁,例如管理层、业务团队、技术人员等,了解他们的需求和数据理解能力。2.数据需求●数据来源:确定数据的来源,包括数据库、API、文件等,并确保数据的可靠性和可</div> </li> <li><a href="/article/1891710177183330304.htm" title="【Three.js】JS 3D library(一个月进化史)" target="_blank">【Three.js】JS 3D library(一个月进化史)</a> <span class="text-muted">Tiffany_Ho</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/Three.js/1.htm">Three.js</a> <div>#春节过完了,该继续投入学习了~作为一个平面开发者,想要增进更多的技能,掌握web3D开发#前置知识与技能1.JavaScript基础-掌握ES6+语法(类、模块、箭头函数、解构等)-熟悉异步编程(Promise、async/await)-了解事件循环和DOM操作2.HTML5和CSS3-熟悉Canvas和WebGL的基础概念-了解CSS3动画和变换(transform、transition)3.</div> </li> <li><a href="/article/1891708429735620608.htm" title="赛前启航 | Azure 应用开发实战指南:开启创意的无限可能" target="_blank">赛前启航 | Azure 应用开发实战指南:开启创意的无限可能</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/microsoft/1.htm">microsoft</a> <div>在AI时代,如何高效构建、优化和部署你的应用?如何充分利用微软Azure的强大能力,让开发更敏捷,性能更卓越?2月21日14:00-16:00,微软AI开发者挑战赛赛前指导第二场直播,带你全方位掌握Azure开发的核心要点,助你制胜挑战赛!主题:Azure应用开发实战指南:开启创意的无限可能时间:2025年2月21日星期五14:00-16:00亮点纷呈,不容错过【探索Azure】Azure作为全球</div> </li> <li><a href="/article/1891707270597767168.htm" title="掌握iOS导航控制器实践指南.zip" target="_blank">掌握iOS导航控制器实践指南.zip</a> <span class="text-muted">滚菩提哦呢</span> <div>本文还有配套的精品资源,点击获取简介:在iOS开发中,导航控制器是一个核心组件,用于管理视图控制器的导航堆栈,提供用户界面的“前进/后退”导航体验。本压缩包提供了一系列示例和代码片段,讲解了如何使用导航控制器以及如何利用XIB文件来设计和实现视图控制器的界面。开发者将通过这些实践示例学习到导航控制器的工作原理和基本操作,包括视图控制器的推送、弹出,以及如何访问和操作导航栈。这些知识对于创建流畅直观</div> </li> <li><a href="/article/1891700966030372864.htm" title="数据仓库和数据湖 数据仓库和数据库" target="_blank">数据仓库和数据湖 数据仓库和数据库</a> <span class="text-muted">qq_25467441</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E4%BB%93%E5%BA%93/1.htm">数据仓库</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>数据仓库和数据湖是两种不同的数据存储解决方案,它们在设计、用途和数据管理方式上有着显著的区别。以下是数据仓库和数据湖的主要区别:1.数据结构:•数据仓库:通常存储结构化数据,这些数据经过清洗、转换和加载(ETL)过程,以确保数据的一致性和准确性。数据仓库中的数据通常是预定义模式的,便于进行快速查询和分析。•数据湖:可以存储结构化、半结构化和非结构化数据。数据湖不需要预定义的模式,数据可以以其原始格</div> </li> <li><a href="/article/1891699576222576640.htm" title="如何解决RNN梯度爆炸和弥散的问题" target="_blank">如何解决RNN梯度爆炸和弥散的问题</a> <span class="text-muted">路野yue</span> <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>1.梯度裁剪(GradientClipping):用于防止梯度爆炸。在每次参数更新之前,计算梯度的范数,如果超过某个阈值,则将梯度缩放到这个阈值。这种方法可以防止梯度在反向传播过程中变得过大。2.使用ReLU激活函数:相比于tanh或sigmoid,ReLU激活函数(及其变种如LeakyReLU)在正区间内梯度恒定,这有助于缓解梯度爆炸问题。但需要注意的是,ReLU也可能导致神经元死亡的问题。3.</div> </li> <li><a href="/article/106.htm" title="书其实只有三类" target="_blank">书其实只有三类</a> <span class="text-muted">西蜀石兰</span> <a class="tag" taget="_blank" href="/search/%E7%B1%BB/1.htm">类</a> <div>一个人一辈子其实只读三种书,知识类、技能类、修心类。 知识类的书可以让我们活得更明白。类似十万个为什么这种书籍,我一直不太乐意去读,因为单纯的知识是没法做事的,就像知道地球转速是多少一样(我肯定不知道),这种所谓的知识,除非用到,普通人掌握了完全是一种负担,维基百科能找到的东西,为什么去记忆? 知识类的书,每个方面都涉及些,让自己显得不那么没文化,仅此而已。社会认为的学识渊博,肯定不是站在</div> </li> <li><a href="/article/233.htm" title="《TCP/IP 详解,卷1:协议》学习笔记、吐槽及其他" target="_blank">《TCP/IP 详解,卷1:协议》学习笔记、吐槽及其他</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/tcp/1.htm">tcp</a> <div>《TCP/IP 详解,卷1:协议》是经典,但不适合初学者。它更像是一本字典,适合学过网络的人温习和查阅一些记不清的概念。 这本书,我看的版本是机械工业出版社、范建华等译的。这本书在我看来,翻译得一般,甚至有明显的错误。如果英文熟练,看原版更好: http://pcvr.nl/tcpip/ 下面是我的一些笔记,包括我看书时有疑问的地方,也有对该书的吐槽,有不对的地方请指正: 1.</div> </li> <li><a href="/article/360.htm" title="Linux—— 静态IP跟动态IP设置" target="_blank">Linux—— 静态IP跟动态IP设置</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/IP/1.htm">IP</a> <div>一.在终端输入 vi /etc/sysconfig/network-scripts/ifcfg-eth0 静态ip模板如下: DEVICE="eth0" #网卡名称 BOOTPROTO="static" #静态IP(必须) HWADDR="00:0C:29:B5:65:CA" #网卡mac地址 IPV6INIT=&q</div> </li> <li><a href="/article/487.htm" title="Informatica update strategy transformation" target="_blank">Informatica update strategy transformation</a> <span class="text-muted">18289753290</span> <div>更新策略组件: 标记你的数据进入target里面做什么操作,一般会和lookup配合使用,有时候用0,1,1代表 forward  rejected rows被选中,rejected row是输出在错误文件里,不想看到reject输出,将错误输出到文件,因为有时候数据库原因导致某些column不能update,reject就会output到错误文件里面供查看,在workflow的</div> </li> <li><a href="/article/614.htm" title="使用Scrapy时出现虽然队列里有很多Request但是却不下载,造成假死状态" target="_blank">使用Scrapy时出现虽然队列里有很多Request但是却不下载,造成假死状态</a> <span class="text-muted">酷的飞上天空</span> <a class="tag" taget="_blank" href="/search/request/1.htm">request</a> <div>现象就是: 程序运行一段时间,可能是几十分钟或者几个小时,然后后台日志里面就不出现下载页面的信息,一直显示上一分钟抓取了0个网页的信息。 刚开始已经猜到是某些下载线程没有正常执行回调方法引起程序一直以为线程还未下载完成,但是水平有限研究源码未果。 经过不停的google终于发现一个有价值的信息,是给twisted提出的一个bugfix 连接地址如下http://twistedmatrix.</div> </li> <li><a href="/article/741.htm" title="利用预测分析技术来进行辅助医疗" target="_blank">利用预测分析技术来进行辅助医疗</a> <span class="text-muted">蓝儿唯美</span> <a class="tag" taget="_blank" href="/search/%E5%8C%BB%E7%96%97/1.htm">医疗</a> <div>2014年,克利夫兰诊所(Cleveland Clinic)想要更有效地控制其手术中心做膝关节置换手术的费用。整个系统每年大约进行2600例此类手术,所以,即使降低很少一部分成本,都可以为诊 所和病人节约大量的资金。为了找到适合的解决方案,供应商将视野投向了预测分析技术和工具,但其分析团队还必须花时间向医生解释基于数据的治疗方案意味着 什么。  克利夫兰诊所负责企业信息管理和分析的医疗</div> </li> <li><a href="/article/868.htm" title="java 线程(一):基础篇" target="_blank">java 线程(一):基础篇</a> <span class="text-muted">DavidIsOK</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/%E7%BA%BF%E7%A8%8B/1.htm">线程</a> <div>                                                        &nbs</div> </li> <li><a href="/article/995.htm" title="Tomcat服务器框架之Servlet开发分析" target="_blank">Tomcat服务器框架之Servlet开发分析</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/servlet/1.htm">servlet</a> <div>最近使用Tomcat做web服务器,使用Servlet技术做开发时,对Tomcat的框架的简易分析: 疑问: 为什么我们在继承HttpServlet类之后,覆盖doGet(HttpServletRequest req, HttpServetResponse rep)方法后,该方法会自动被Tomcat服务器调用,doGet方法的参数有谁传递过来?怎样传递? 分析之我见: doGet方法的</div> </li> <li><a href="/article/1122.htm" title="揭秘玖富的粉丝营销之谜 与小米粉丝社区类似" target="_blank">揭秘玖富的粉丝营销之谜 与小米粉丝社区类似</a> <span class="text-muted">aoyouzi</span> <a class="tag" taget="_blank" href="/search/%E6%8F%AD%E7%A7%98%E7%8E%96%E5%AF%8C%E7%9A%84%E7%B2%89%E4%B8%9D%E8%90%A5%E9%94%80%E4%B9%8B%E8%B0%9C/1.htm">揭秘玖富的粉丝营销之谜</a> <div>玖富旗下悟空理财凭借着一个微信公众号上线当天成交量即破百万,第七天成交量单日破了1000万;第23天时,累计成交量超1个亿……至今成立不到10个月,粉丝已经超过500万,月交易额突破10亿,而玖富平台目前的总用户数也已经超过了1800万,位居P2P平台第一位。很多互联网金融创业者慕名前来学习效仿,但是却鲜有成功者,玖富的粉丝营销对外至今仍然是个谜。     近日,一直坚持微信粉丝营销</div> </li> <li><a href="/article/1249.htm" title="Java web的会话跟踪技术" target="_blank">Java web的会话跟踪技术</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/url%E4%BC%9A%E8%AF%9D/1.htm">url会话</a><a class="tag" taget="_blank" href="/search/Cookie%E4%BC%9A%E8%AF%9D/1.htm">Cookie会话</a><a class="tag" taget="_blank" href="/search/Seession%E4%BC%9A%E8%AF%9D/1.htm">Seession会话</a><a class="tag" taget="_blank" href="/search/Java+Web/1.htm">Java Web</a><a class="tag" taget="_blank" href="/search/%E9%9A%90%E8%97%8F%E5%9F%9F%E4%BC%9A%E8%AF%9D/1.htm">隐藏域会话</a> <div>会话跟踪主要是用在用户页面点击不同的页面时,需要用到的技术点   会话:多次请求与响应的过程     1,url地址传递参数,实现页面跟踪技术          格式:传一个参数的 url?名=值     传两个参数的 url?名=值 &名=值   关键代码</div> </li> <li><a href="/article/1376.htm" title="web.xml之Servlet配置" target="_blank">web.xml之Servlet配置</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/web.xml/1.htm">web.xml</a><a class="tag" taget="_blank" href="/search/Servlet%E9%85%8D%E7%BD%AE/1.htm">Servlet配置</a> <div>定义: <servlet> <servlet-name>myservlet</servlet-name> <servlet-class>com.myapp.controller.MyFirstServlet</servlet-class> <init-param> <param-name></div> </li> <li><a href="/article/1503.htm" title="利用svnsync实现SVN同步备份" target="_blank">利用svnsync实现SVN同步备份</a> <span class="text-muted">sunjing</span> <a class="tag" taget="_blank" href="/search/SVN/1.htm">SVN</a><a class="tag" taget="_blank" href="/search/%E5%90%8C%E6%AD%A5/1.htm">同步</a><a class="tag" taget="_blank" href="/search/E000022/1.htm">E000022</a><a class="tag" taget="_blank" href="/search/svnsync/1.htm">svnsync</a><a class="tag" taget="_blank" href="/search/%E9%95%9C%E5%83%8F/1.htm">镜像</a> <div>1. 在备份SVN服务器上建立版本库    svnadmin create test 2. 创建pre-revprop-change文件     cd test/hooks/     cp pre-revprop-change.tmpl pre-revprop-change 3. 修改pre-revprop-</div> </li> <li><a href="/article/1630.htm" title="【分布式数据一致性三】MongoDB读写一致性" target="_blank">【分布式数据一致性三】MongoDB读写一致性</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a> <div>本系列文章结合MongoDB,探讨分布式数据库的数据一致性,这个系列文章包括: 数据一致性概述与CAP 最终一致性(Eventually Consistency) 网络分裂(Network Partition)问题 多数据中心(Multi Data Center) 多个写者(Multi Writer)最终一致性 一致性图表(Consistency Chart) 数据</div> </li> <li><a href="/article/1757.htm" title="Anychart图表组件-Flash图转IMG普通图的方法" target="_blank">Anychart图表组件-Flash图转IMG普通图的方法</a> <span class="text-muted">白糖_</span> <a class="tag" taget="_blank" href="/search/Flash/1.htm">Flash</a> <div>问题背景:项目使用的是Anychart图表组件,渲染出来的图是Flash的,往往一个页面有时候会有多个flash图,而需求是让我们做一个打印预览和打印功能,让多个Flash图在一个页面上打印出来。   那么我们打印预览的思路是获取页面的body元素,然后在打印预览界面通过$("body").append(html)的形式显示预览效果,结果让人大跌眼镜:Flash是</div> </li> <li><a href="/article/1884.htm" title="Window 80端口被占用 WHY?" target="_blank">Window 80端口被占用 WHY?</a> <span class="text-muted">bozch</span> <a class="tag" taget="_blank" href="/search/%E7%AB%AF%E5%8F%A3%E5%8D%A0%E7%94%A8/1.htm">端口占用</a><a class="tag" taget="_blank" href="/search/window/1.htm">window</a> <div>平时在启动一些可能使用80端口软件的时候,会提示80端口已经被其他软件占用,那一般又会有那些软件占用这些端口呢?    下面坐下总结:         1、web服务器是最经常见的占用80端口的,例如:tomcat , apache  , IIS , Php等等;         2</div> </li> <li><a href="/article/2011.htm" title="编程之美-数组的最大值和最小值-分治法(两种形式)" target="_blank">编程之美-数组的最大值和最小值-分治法(两种形式)</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E4%B9%8B%E7%BE%8E/1.htm">编程之美</a> <div> import java.util.Arrays; public class MinMaxInArray { /** * 编程之美 数组的最大值和最小值 分治法 * 两种形式 */ public static void main(String[] args) { int[] t={11,23,34,4,6,7,8,1,2,23}; int[] </div> </li> <li><a href="/article/2138.htm" title="Perl正则表达式" target="_blank">Perl正则表达式</a> <span class="text-muted">chenbowen00</span> <a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a><a class="tag" taget="_blank" href="/search/perl/1.htm">perl</a> <div>首先我们应该知道 Perl 程序中,正则表达式有三种存在形式,他们分别是: 匹配:m/<regexp>;/ (还可以简写为 /<regexp>;/ ,略去 m) 替换:s/<pattern>;/<replacement>;/ 转化:tr/<pattern>;/<replacemnt>;</div> </li> <li><a href="/article/2265.htm" title="[宇宙与天文]行星议会是否具有本行星大气层以外的权力呢?" target="_blank">[宇宙与天文]行星议会是否具有本行星大气层以外的权力呢?</a> <span class="text-muted">comsci</span> <div>       举个例子: 地球,地球上由200多个国家选举出一个代表地球联合体的议会,那么现在地球联合体遇到一个问题,地球这颗星球上面的矿产资源快要采掘完了....那么地球议会全体投票,一致通过一项带有法律性质的议案,既批准地球上的国家用各种技术手段在地球以外开采矿产资源和其它资源........    &</div> </li> <li><a href="/article/2392.htm" title="Oracle Profile 使用详解" target="_blank">Oracle Profile 使用详解</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/profile/1.htm">profile</a><a class="tag" taget="_blank" href="/search/%E8%B5%84%E6%BA%90%E9%99%90%E5%88%B6/1.htm">资源限制</a> <div>Oracle Profile 使用详解 转 一、目的: Oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用Create Profile命令创建一个Profile,用它来实现对数据库资源的限制使用,如果把该profile分配给用户,则该用户所能使用的数据库资源都在该profile的限制之内。 二、条件: 创建profile必须要有CREATE PROFIL</div> </li> <li><a href="/article/2519.htm" title="How HipChat Stores And Indexes Billions Of Messages Using ElasticSearch & Redis" target="_blank">How HipChat Stores And Indexes Billions Of Messages Using ElasticSearch & Redis</a> <span class="text-muted">dengkane</span> <a class="tag" taget="_blank" href="/search/elasticsearch/1.htm">elasticsearch</a><a class="tag" taget="_blank" href="/search/Lucene/1.htm">Lucene</a> <div>This article is from an interview with Zuhaib Siddique, a production engineer at HipChat, makers of group chat and IM for teams. HipChat started in an unusual space, one you might not </div> </li> <li><a href="/article/2646.htm" title="循环小示例,菲波拉契序列,循环解一元二次方程以及switch示例程序" target="_blank">循环小示例,菲波拉契序列,循环解一元二次方程以及switch示例程序</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/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div># include <stdio.h> int main(void) { int n; int i; int f1, f2, f3; f1 = 1; f2 = 1; printf("请输入您需要求的想的序列:"); scanf("%d", &n); for (i=3; i<n; i</div> </li> <li><a href="/article/2773.htm" title="macbook的lamp环境" target="_blank">macbook的lamp环境</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/lamp/1.htm">lamp</a> <div>  sudo vim /etc/apache2/httpd.conf   /Library/WebServer/Documents 是默认的网站根目录   重启Mac上的Apache服务   这个命令很早以前就查过了,但是每次使用的时候还是要在网上查: 停止服务:sudo /usr/sbin/apachectl stop 开启服务:s</div> </li> <li><a href="/article/2900.htm" title="java ArrayList源码 下" target="_blank">java ArrayList源码 下</a> <span class="text-muted">shuizhaosi888</span> <a class="tag" taget="_blank" href="/search/ArrayList%E6%BA%90%E7%A0%81/1.htm">ArrayList源码</a> <div>版本 jdk-7u71-windows-x64   JavaSE7 ArrayList源码上:http://flyouwith.iteye.com/blog/2166890     /** * 从这个列表中移除所有c中包含元素 */ public boolean removeAll(Collection<?> c) {</div> </li> <li><a href="/article/3027.htm" title="Spring Security(08)——intercept-url配置" target="_blank">Spring Security(08)——intercept-url配置</a> <span class="text-muted">234390216</span> <a class="tag" taget="_blank" href="/search/Spring+Security/1.htm">Spring Security</a><a class="tag" taget="_blank" href="/search/intercept-url/1.htm">intercept-url</a><a class="tag" taget="_blank" href="/search/%E8%AE%BF%E9%97%AE%E6%9D%83%E9%99%90/1.htm">访问权限</a><a class="tag" taget="_blank" href="/search/%E8%AE%BF%E9%97%AE%E5%8D%8F%E8%AE%AE/1.htm">访问协议</a><a class="tag" taget="_blank" href="/search/%E8%AF%B7%E6%B1%82%E6%96%B9%E6%B3%95/1.htm">请求方法</a> <div>intercept-url配置 目录 1.1     指定拦截的url 1.2     指定访问权限 1.3     指定访问协议 1.4     指定请求方法   1.1   &n</div> </li> <li><a href="/article/3154.htm" title="Linux环境下的oracle安装" target="_blank">Linux环境下的oracle安装</a> <span class="text-muted">jayung</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a> <div>linux系统下的oracle安装 本文档是Linux(redhat6.x、centos6.x、redhat7.x) 64位操作系统安装Oracle 11g(Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production),本文基于各种网络资料精心整理而成,共享给有需要的朋友。如有问题可联系:QQ:52-7</div> </li> <li><a href="/article/3281.htm" title="hotspot虚拟机" target="_blank">hotspot虚拟机</a> <span class="text-muted">leichenlei</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/HotSpot/1.htm">HotSpot</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/%E8%99%9A%E6%8B%9F%E6%9C%BA/1.htm">虚拟机</a><a class="tag" taget="_blank" href="/search/%E6%96%87%E6%A1%A3/1.htm">文档</a> <div>JVM参数  http://docs.oracle.com/javase/6/docs/technotes/guides/vm/index.html   JVM工具 http://docs.oracle.com/javase/6/docs/technotes/tools/index.html   JVM垃圾回收 http://www.oracle.com</div> </li> <li><a href="/article/3408.htm" title="读《Node.js项目实践:构建可扩展的Web应用》 ——引编程慢慢变成系统化的“砌砖活”" target="_blank">读《Node.js项目实践:构建可扩展的Web应用》 ——引编程慢慢变成系统化的“砌砖活”</a> <span class="text-muted">noaighost</span> <a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a> <div>读《Node.js项目实践:构建可扩展的Web应用》 ——引编程慢慢变成系统化的“砌砖活” 眼里的Node.JS 初初接触node是一年前的事,那时候年少不更事。还在纠结什么语言可以编写出牛逼的程序,想必每个码农都会经历这个月经性的问题:微信用什么语言写的?facebook为什么推荐系统这么智能,用什么语言写的?dota2的外挂这么牛逼,用什么语言写的?……用什么语言写这句话,困扰人也是阻碍</div> </li> <li><a href="/article/3535.htm" title="快速开发Android应用" target="_blank">快速开发Android应用</a> <span class="text-muted">rensanning</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>Android应用开发过程中,经常会遇到很多常见的类似问题,解决这些问题需要花时间,其实很多问题已经有了成熟的解决方案,比如很多第三方的开源lib,参考 Android Libraries 和 Android UI/UX Libraries。 编码越少,Bug越少,效率自然会高。 但可能由于 根本没听说过、听说过但没用过、特殊原因不能用、自己已经有了解决方案等等原因,这些成熟的解决</div> </li> <li><a href="/article/3662.htm" title="理解Java中的弱引用" target="_blank">理解Java中的弱引用</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/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a> <div> 不久之前,我 面试了一些求职Java高级开发工程师的应聘者。我常常会面试他们说,“你能给我介绍一些Java中得弱引用吗?”,如果面试者这样说,“嗯,是不是垃圾回收有关的?”,我就会基本满意了,我并不期待回答是一篇诘究本末的论文描述。   然而事与愿违,我很吃惊的发现,在将近20多个有着平均5年开发经验和高学历背景的应聘者中,居然只有两个人知道弱引用的存在,但是在这两个人之中只有一个人真正了</div> </li> <li><a href="/article/3789.htm" title="关于<c:out value=""/>标签输出html标签" target="_blank">关于<c:out value=""/>标签输出html标签</a> <span class="text-muted">xshdch</span> <a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a> <div>http://back-888888.iteye.com/blog/1181202 关于<c:out value=""/>标签的使用,其中有一个属性是escapeXml默认是true(将html标签当做转移字符,直接显示不在浏览器上面进行解析),当设置escapeXml属性值为false的时候就是不过滤xml,这样就能在浏览器上解析html标签, &nb</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>