cypress 是目前 e2e 很火的一个测试组件,内部绑定了 macha、chai、chai-jquery 之类的断言,为了让代码代码
更有说服力,减少提交测试错误,进行 e2e 测试显然是非常有必要的。
官网
GitHub
借鉴官网一句话来说:
Cypress is a next generation front end testing tool built for the modern web. We address the key
pain points developers and QA engineers face when testing modern applications.
node v9.5\
npm v5.5
e2e 测试端对端测试的简称, e2e 即为end to end
,
指任意一个人的社交、交易、休闲都可以直接与另外任意一个人产生关系,去中心化、渠道化.
做前端怎么少的多的了 npm 呢
$ npm i -D cypress
然后为了方便起见,咱们在package.json
中写入下面脚本:
{
"scripts": {
"e2e:open": "cypress open",
"e2e:run": "cypress run"
}
}
运行npm run e2e:open
,启动一个 cypress 的服务器,如下:
如下图这就完成了一个启动一个 cypress。第一次点开时候,cypress 会帮你创建一个初始化配置目录,这是
cypress 推荐的目录的结构,当然也可以自己创建。
点击 example_spec.js 文件,然后可以看到如下界面,cypress 开始测试:
上面就看到 cypress 的运行过程了。下面看看 example_spec.js(文件的位置
:projectName/cypress/integration)文件中写了啥:
describe('Kitchen Sink', function() {
it('.should() - assert that is correct'</span>, <span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span> {</span>
<span class="hljs-comment">// ...</span>
}
})</code></pre>
<p>这是主要结构的,下面大部分都是在一个<code>it</code>函数内部,是测试里面的回调函数。详细可以查看 TDD 和 BDD 测试 <br> 框架,cypress 绑定了这些测试框架。</p>
<h2 id="cyvisit">cy.visit</h2>
<p>这是 cypress 里面一个很重要的方法,可以访问一个链接,列入 example.js 文件如下:</p>
<pre class="prettyprint"><code class="language-js hljs ">beforeEach(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span> {</span>
<span class="hljs-comment">// Visiting our app before each test removes any state build up from</span>
<span class="hljs-comment">// previous tests. Visiting acts as if we closed a tab and opened a fresh one</span>
cy.visit(<span class="hljs-string">'https://example.cypress.io/commands/querying'</span>)
})</code></pre>
<p>这里就是在前置钩子函数里面访问了<code>https://...../querying</code>这个链接。如果代码需要浏览器调试,比如用户交 <br> 互点击,用户输入之类的。第一步就是访问:cy.visit</p>
<h2 id="cyget">cy.get</h2>
<p>还是从 example_spec.js 问中说起:</p>
<pre class="prettyprint"><code class="language-js hljs ">it(<span class="hljs-string">'cy.get() - query DOM elements'</span>, <span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span> {</span>
<span class="hljs-comment">// https://on.cypress.io/get</span>
<span class="hljs-comment">// Get DOM elements by id</span>
cy.get(<span class="hljs-string">'#query-btn'</span>).should(<span class="hljs-string">'contain'</span>, <span class="hljs-string">'Button'</span>)
<span class="hljs-comment">// Get DOM elements by class</span>
cy.get(<span class="hljs-string">'.query-btn'</span>).should(<span class="hljs-string">'contain'</span>, <span class="hljs-string">'Button'</span>)
cy.get(<span class="hljs-string">'#querying .well>button:first'</span>).should(<span class="hljs-string">'contain'</span>, <span class="hljs-string">'Button'</span>)
<span class="hljs-comment">// ↲</span>
<span class="hljs-comment">// Use CSS selectors just like jQuery</span>
})</code></pre>
<p>这里定义了一个测试单元,在这个里面做了啥呢?第一步获取 id 为 query-btn 这个按钮。接下来 should 操作 <br> ,奉上一张表自行查看: </p>
<p>cy.get 还有一个玩法就是 cy.get(‘@app’)这种,意思说之前你已经<code>cy.get('.app').as('app')</code>,不需要再次获 <br> 取了,直接使用别名就好了</p>
<p>从官网截图的表格,详 <br> 细jquery-chai 文档表格</p>
<p>这里看到<code>cy.get()</code>和<code>jquery.$</code>是不是很像,在官网这里说了这样一句话:</p>
<blockquote>
<p>The querying behavior of this command matches exactly how $(…) works in jQuery.</p>
</blockquote>
<p>所以可以将 cy.get()当$一样来用即可,不过这里返回的不过 jquery 对象罢了,这里返回的事通过 cypress 包 <br> 装过的对象可以在控制台看到这样的东西,见下图: <br> </p>
<p>是一个用于 cypress 所有方法的对象。然后可以操作他的 api 了。</p>
<p>第一部分,主要是查询,查询页面元素是否按照我们开发想要的存在,下面看第二部分:</p>
<pre class="prettyprint"><code class="language-js hljs ">context(<span class="hljs-string">'Actions'</span>, <span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span> {</span>
beforeEach(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span> {</span>
cy.visit(<span class="hljs-string">'https://example.cypress.io/commands/actions'</span>)
})
<span class="hljs-comment">// Let's perform some actions on DOM elements</span>
<span class="hljs-comment">// https://on.cypress.io/interacting-with-elements</span>
it(<span class="hljs-string">'.type() - type into a DOM element'</span>, <span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span> {</span>
<span class="hljs-comment">// https://on.cypress.io/type</span>
cy
.get(<span class="hljs-string">'.action-email'</span>)
.type(<span class="hljs-string">'fake@email.com'</span>)
.should(<span class="hljs-string">'have.value'</span>, <span class="hljs-string">'fake@email.com'</span>)
<span class="hljs-comment">// .type() with special character sequences</span>
.type(<span class="hljs-string">'{leftarrow}{rightarrow}{uparrow}{downarrow}'</span>)
.type(<span class="hljs-string">'{del}{selectall}{backspace}'</span>)
<span class="hljs-comment">// .type() with key modifiers</span>
.type(<span class="hljs-string">'{alt}{option}'</span>) <span class="hljs-comment">//these are equivalent</span>
.type(<span class="hljs-string">'{ctrl}{control}'</span>) <span class="hljs-comment">//these are equivalent</span>
.type(<span class="hljs-string">'{meta}{command}{cmd}'</span>) <span class="hljs-comment">//these are equivalent</span>
.type(<span class="hljs-string">'{shift}'</span>)
<span class="hljs-comment">// Delay each keypress by 0.1 sec</span>
.type(<span class="hljs-string">'slow.typing@email.com'</span>, { delay: <span class="hljs-number">100</span> })
.should(<span class="hljs-string">'have.value'</span>, <span class="hljs-string">'slow.typing@email.com'</span>)
cy
.get(<span class="hljs-string">'.action-disabled'</span>)
<span class="hljs-comment">// Ignore error checking prior to type</span>
<span class="hljs-comment">// like whether the input is visible or disabled</span>
.type(<span class="hljs-string">'disabled error checking'</span>, { force: <span class="hljs-literal">true</span> })
.should(<span class="hljs-string">'have.value'</span>, <span class="hljs-string">'disabled error checking'</span>)
})
})</code></pre>
<p>这一部分主要是进行获取元素交互, 下面来说交互是如何搞得。 与 cy.get 相似还有:</p>
<ul>
<li>cy.contains 通过文本获取元素</li>
<li>cy.closet 见 jqery</li>
<li>cy.next/cy.nextAll 可以和 cy.contains 联合使用获取该节点的下一个节点</li>
<li>cy.prev/cy.prevAll 同上</li>
<li>cy.children/cy.parents/cy.parent 获取子节点/ 所有的父节点 / 父节点</li>
<li>cy.first/cy.last</li>
<li>cy.url 获取当前页面 url</li>
<li>cy.title 获取当前页面标题</li>
<li>… API 挺多的,同样奉 <br> 上api 文档</li>
</ul>
<h2 id="cypress-交互逻辑">cypress 交互逻辑</h2>
<p>既然要交互肯定需要点击输入滚动,可以还存在拖拽等等。咱们就暂时从输入开始说起啦</p>
<h3 id="cytype">cy.type</h3>
<p>这不是一个可以直接使用的方法,要配合<code>cy.get</code>使用的,作用是给空间进行输入。例如:</p>
<h4 id="测试输入例如-text-textarea">测试输入例如 text, textarea</h4>
<pre class="prettyprint"><code class="language-js hljs ">cy.get(<span class="hljs-string">'input'</span>).type(<span class="hljs-string">'hello world'</span>)</code></pre>
<h4 id="测试-tabindex">测试 tabIndex</h4>
<pre class="prettyprint"><code class="language-html hljs "> <span class="hljs-tag"><<span class="hljs-title">div</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"el"</span> <span class="hljs-attribute">tabIndex</span>=<span class="hljs-value">"1"</span>></span>
This is TabIndex div.
<span class="hljs-tag"></<span class="hljs-title">div</span>></span></code></pre>
<pre class="prettyprint"><code class="language-js hljs ">cy.get(<span class="hljs-string">'.el'</span>).type(<span class="hljs-string">'laldkadaljdkljasf'</span>) <span class="hljs-comment">// 这个里面是随机字符串</span></code></pre>
<h4 id="测试-input-为日期的">测试 input 为日期的</h4>
<pre class="prettyprint"><code class="language-js hljs ">cy.get(<span class="hljs-string">'input[type=date]'</span>).type(<span class="hljs-string">'2008-8-9'</span>)</code></pre>
<h4 id="键盘绑定">键盘绑定</h4>
<p>下面直接是对 input 进行组合键盘操作</p>
<pre class="prettyprint"><code class="language-js hljs ">cy.get(<span class="hljs-string">'input'</span>).type(<span class="hljs-string">'{shift}{alt}Q'</span>)</code></pre>
<p>按住键盘操作</p>
<pre class="prettyprint"><code class="language-js hljs ">cy.get(<span class="hljs-string">'input'</span>).type(<span class="hljs-string">'{alt}这里是按了一下alt后输入的内容'</span>)</code></pre>
<p>还有长按键盘之类的操作,详细就看官网了这里之类奉上链 <br> 接https://docs.cypress.io/api/commands/type.html#Key-Combinations</p>
<p>这里就是关于键盘的组合操作。</p>
<h4 id="对于选择例如-radio-checkbox">对于选择例如 radio, checkbox</h4>
<p>这些就只需要利用点击事件即可,如下:</p>
<pre class="prettyprint"><code class="language-js hljs ">cy
.get(<span class="hljs-string">'input[type=radio]'</span>)
.as(<span class="hljs-string">'radio'</span>)
.click()
cy.get(<span class="hljs-string">'@radio'</span>).should(<span class="hljs-string">'be.checked'</span>)</code></pre>
<h3 id="定时">定时</h3>
<h4 id="cywait">cy.wait</h4>
<p>下面是等待 1s</p>
<pre class="prettyprint"><code class="language-js hljs ">cy.wait(<span class="hljs-number">1000</span>)</code></pre>
<h4 id="cyclock-和-cytick">cy.clock 和 cy.tick</h4>
<p>自己的代码:</p>
<pre class="prettyprint"><code class="language-js hljs "><span class="hljs-keyword">var</span> seconds = <span class="hljs-number">0</span>
setInterval(() => {
$(<span class="hljs-string">'#seconds-elapsed'</span>).text(++seconds + <span class="hljs-string">' seconds'</span>)
}, <span class="hljs-number">1000</span>)</code></pre>
<p>测试代码</p>
<pre class="prettyprint"><code class="language-js hljs ">cy.clock()
cy.visit(<span class="hljs-string">'/index.html'</span>)
cy.tick(<span class="hljs-number">1000</span>)
cy.get(<span class="hljs-string">'#seconds-elapsed'</span>).should(<span class="hljs-string">'have.text'</span>, <span class="hljs-string">'1 seconds'</span>)
cy.tick(<span class="hljs-number">1000</span>)
cy.get(<span class="hljs-string">'#seconds-elapsed'</span>).should(<span class="hljs-string">'have.text'</span>, <span class="hljs-string">'2 seconds'</span>)</code></pre>
<p> 这里就会出现关于 clock 和 tick <br> 的用法,更多用法看文档,我也有部分迷惑的。待后来再解决。老规矩文档地址: <br> 地址</p>
<h3 id="关于-cypress-的配置">关于 cypress 的配置</h3>
<p>先复制一段出来:</p>
<pre class="prettyprint"><code class="language-json hljs ">{
"<span class="hljs-attribute">baseUrl</span>": <span class="hljs-value"><span class="hljs-string">"http://localhost:8080"</span></span>,
"<span class="hljs-attribute">pageLoadTimeout</span>": <span class="hljs-value"><span class="hljs-number">3000</span></span>,
"<span class="hljs-attribute">viewportHeight</span>": <span class="hljs-value"><span class="hljs-number">667</span></span>,
"<span class="hljs-attribute">viewportWidth</span>": <span class="hljs-value"><span class="hljs-number">375</span>
</span>}</code></pre>
<p>这是一个非常精简的配置了:</p>
<ul>
<li>baseUrl 基础链接,之后在是使用 cy.visit 的时候,只需要访问具体路由例如: cy.visit(‘/Hello’)</li>
<li>viewport 两个属性 <br>
<ul>
<li>viewportHeight 测试窗口的高度</li>
<li>viewportWidth 测试窗口的宽度</li>
</ul></li>
<li>pageLoadTimeout 页面家安在超过 3000ms 即为超时。</li>
</ul>
<h2 id="总结">总结</h2>
<p>上面是 cypress 的基本用法,cypress 是基于 electron 的一个测试框架,提供 web 环境进行点对点的测试,在 <br> programer 思维下,进行自动化的交互操作,必要点检测说明,这是一个非常棒的用处。例如之后拥有数据埋点, <br> 可以在固定的位置检测是否有埋点。测试想要的地方是否匹配的数据。模拟用户的点击操作,这都是非常棒的。在 <br> jquery 操作年代,各种 id 和 class 奇怪命名下,这些都可以容易找到,在 vue 和 react 大行其道的年代,但 <br> 是却可以通过文本寻找节点。这也是非常棒的体验,更多秘密需要去体验,奉上官方地址 <br> :官网 cypress</p>
</div>
</div>
</div>
</div>
</div>
<!--PC和WAP自适应版-->
<div id="SOHUCS" sid="1177216967765979136"></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">你可能感兴趣的:(javascript,工具)</h4>
<div id="paradigm-article-related">
<div class="recommend-post mb30">
<ul class="widget-links">
<li><a href="/article/1890053565217566720.htm"
title="MVC和react" target="_blank">MVC和react</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/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a>
<div>MVC1.MVC是一种使用MVC(ModelViewController模型-视图-控制器)设计创建Web应用程序的模式.(1)Model(模型)表示应用程序核心(比如数据库记录列表).(2)View(视图)显示数据(数据库记录).(3)Controller(控制器)处理输入(写入数据库记录).2.MVC模式同时提供了对HTML、CSS和JavaScript的完全控制.(1)Model(模式)是应</div>
</li>
<li><a href="/article/1890053058742775808.htm"
title="appium环境搭建" target="_blank">appium环境搭建</a>
<span class="text-muted">weixin_43516809</span>
<a class="tag" taget="_blank" href="/search/appium/1.htm">appium</a><a class="tag" taget="_blank" href="/search/appuim/1.htm">appuim</a>
<div>提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言记录手机自动化环境搭建学习过程一、jdk安装配置(省略)二、AndroidSDK安装配置三、python环境安装配置四、pycharm开发工具安装五、安装node.js六、appium安装1.安装2.检查appium环境是否搭建成功七、appium工作原理总结前言记录手机自动化环境搭建学习过程一、jdk安装配置(省略)cm</div>
</li>
<li><a href="/article/1890050030186852352.htm"
title="定了,2025年数据库运维就这样干" target="_blank">定了,2025年数据库运维就这样干</a>
<span class="text-muted">我科绝伦(Huanhuan Zhou)</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><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/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a>
<div>在数字化浪潮中,数据库作为企业数据资产的核心载体,其稳定运行与高效管理至关重要。新的一年,为应对日益增长的数据量和业务复杂度,我们为数据库运维制定了一系列全面且细致的计划,旨在提升数据库性能、保障数据安全,为企业业务发展筑牢坚实基础。一、强化巡检,防患未然数据库的稳定运行离不开日常的精心呵护。2025年,我们将进一步加强巡检工作,利用专业工具和自主研发的系统,对数据库进行全面“体检”。不仅关注数据</div>
</li>
<li><a href="/article/1890049777240961024.htm"
title="利用IDEA将Java.class文件反编译为Java文件:原理、实践与深度解析" target="_blank">利用IDEA将Java.class文件反编译为Java文件:原理、实践与深度解析</a>
<span class="text-muted">.猫的树</span>
<a class="tag" taget="_blank" href="/search/Java%E5%8F%8D%E7%BC%96%E8%AF%91/1.htm">Java反编译</a><a class="tag" taget="_blank" href="/search/IDEA%E6%8A%80%E5%B7%A7/1.htm">IDEA技巧</a><a class="tag" taget="_blank" href="/search/%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B/1.htm">逆向工程</a>
<div>文章目录引言:当.class文件遇到源代码缺失第一章:反编译技术基础认知1.1Java编译执行原理1.2反编译的本质1.3法律与道德边界第二章:IDEA内置反编译工具详解2.1环境准备2.2三步完成基础反编译2.3高级反编译技巧2.3.1调试模式反编译2.3.2Lambda表达式处理2.3.3泛型类型恢复第三章:Fernflower反编译引擎深度配置3.1引擎参数调优3.2多文件批量反编译3.3结</div>
</li>
<li><a href="/article/1890049777987547136.htm"
title="Python网络请求详解" target="_blank">Python网络请求详解</a>
<span class="text-muted">wespten</span>
<a class="tag" taget="_blank" href="/search/%E5%85%A8%E6%A0%88%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">全栈软件测试</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E6%B5%8B%E8%AF%95%E5%BC%80%E5%8F%91/1.htm">人工智能测试开发</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/1.htm">性能测试</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a>
<div>一、网络请求测试人员对于接口测试的理解总是停留在工具使用层面。很多情况下,测试人员会花很大的代价去学习一个工具。而测试工具本身的局限性,又导致测试人员陷入想直接用现成的测试框架却又无法进行扩展的僵局。最后由于项目的特殊性等客观因素,测试人员只能放弃工具,脱离了工具的可视化界面友好操作,发现自己连接口是什么都不明白,更不要说自行完成接口自动化测试了。随即接口自动化测试由于项目成本及人员能力问题宣告失</div>
</li>
<li><a href="/article/1890048263835414528.htm"
title="deepseek和chatgpt对比" target="_blank">deepseek和chatgpt对比</a>
<span class="text-muted">dev.null</span>
<a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/NLP/1.htm">NLP</a><a class="tag" taget="_blank" href="/search/chatgpt/1.htm">chatgpt</a>
<div>DeepSeek和ChatGPT都是自然语言处理领域的工具,但它们的设计目标和功能有所不同。功能定位:ChatGPT是一个基于OpenAIGPT-3或GPT-4的聊天机器人,旨在进行人机对话、文本生成、问题解答等,广泛应用于教育、客服、创意写作等领域。它的核心功能是生成自然、流畅的对话内容,并能够处理各种复杂的语言任务。DeepSeek(假设你是指某种搜索引擎工具或者特定的语义分析工具)通常聚焦于</div>
</li>
<li><a href="/article/1890046246928838656.htm"
title="Sealos的k8s高可用集群搭建" target="_blank">Sealos的k8s高可用集群搭建</a>
<span class="text-muted">da pai ge</span>
<a class="tag" taget="_blank" href="/search/kubernetes/1.htm">kubernetes</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a>
<div>Sealos介绍](https://sealos.io/zh-Hans/docs/Intro)Sealos是一个Go语言开发的简单干净且轻量的Kubernetes集群部署工具,能很好的支持在生产环境中部署高可用的Kubernetes集群。Sealos特性与优势支持离线安装,工具与部署资源包分离,方便不同版本间快速升级。证书有效期默认延期至99年。工具使用非常简单。支持使用自定义配置文件,可灵活完成</div>
</li>
<li><a href="/article/1890045868359348224.htm"
title="新手必看:TikTok卖家中心实用指南,附2025最新TikTok入驻教程" target="_blank">新手必看:TikTok卖家中心实用指南,附2025最新TikTok入驻教程</a>
<span class="text-muted">菠萝派爱跨境</span>
<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/%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>
<div>对于跨境电商来说,TikTok卖家中心是一个强大的工具,它能够帮助卖家轻松管理产品、订单、数据和广告。然而,对于初次接触这个平台的卖家来说,如何入驻并高效使用,成为了一大难题。本篇文章将为您详细讲解TikTok卖家中心的使用方法及最新的入驻教程。一、入驻教程1.入驻前准备(1)TikTok的商业账号。(2)入驻材料:营业执照(或身份证明)、国际收款账户(如Payoneer)、物流和退货地址、产品清</div>
</li>
<li><a href="/article/1890042842684911616.htm"
title="Yocto 项目:嵌入式 Linux 生态的大统之战" target="_blank">Yocto 项目:嵌入式 Linux 生态的大统之战</a>
<span class="text-muted">嵌入式Jerry</span>
<a class="tag" taget="_blank" href="/search/Yocto/1.htm">Yocto</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/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/%E6%9E%B6%E6%9E%84/1.htm">架构</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>
<div>一、引言嵌入式Linux生态一直以来呈现出高度碎片化的状态。不同厂商和行业根据各自的需求,采用不同的Linux发行版,导致软件兼容性问题、开发维护成本高企,以及生态难以整合。作为一款高度可定制化的嵌入式Linux构建工具,Yocto项目(YoctoProject)被认为是统一嵌入式Linux领域的潜在解决方案。然而,Yocto是否真的能够成为未来嵌入式Linux的主流标准?它目前面临哪些竞争对手?</div>
</li>
<li><a href="/article/1890023706491678720.htm"
title="软件工程中的认知负载管理:AI减负策略" target="_blank">软件工程中的认知负载管理:AI减负策略</a>
<span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
<div>软件工程师的工作常常被描述为高压、高强度,这并非夸大其词。繁琐的重复性工作、陡峭的学习曲线、复杂的项目管理以及持续的技术迭代,都给开发者带来了巨大的认知负载。这种超负荷的状态不仅影响开发效率,更严重损害开发者的身心健康。幸运的是,AI写代码工具的兴起为我们提供了一种减轻认知负载,提升开发效率的有效途径。认知负载的来源与类型在软件开发过程中,认知负载的来源广泛且复杂。从需求分析阶段的理解偏差,到代码</div>
</li>
<li><a href="/article/1890023200637644800.htm"
title="AI前端开发对未来职业规划的影响:拥抱变化,迎接挑战" target="_blank">AI前端开发对未来职业规划的影响:拥抱变化,迎接挑战</a>
<span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
<div>随着人工智能技术的飞速发展,AI写代码工具(以及其他AI代码生成工具)的兴起正在深刻地改变着前端开发领域。从简单的代码片段生成到复杂的页面布局设计,AI已经开始扮演越来越重要的角色。这不仅给前端开发带来了前所未有的效率提升,也对前端开发者的职业规划提出了新的挑战和机遇。本文将探讨AI前端开发的未来趋势,以及如何利用AI工具,例如ScriptEcho,来帮助前端开发者适应未来,在竞争激烈的市场中保持</div>
</li>
<li><a href="/article/1890023197999427584.htm"
title="AI前端开发与个人品牌打造:乘风破浪会有时,直挂云帆济沧海" target="_blank">AI前端开发与个人品牌打造:乘风破浪会有时,直挂云帆济沧海</a>
<span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
<div>在数字化浪潮席卷全球的今天,前端开发领域正经历着前所未有的变革。得益于人工智能技术的快速发展,越来越多的AI写代码工具涌现,深刻地改变着前端开发的模式和效率。掌握AI前端开发技能,不仅能提升个人竞争力,更能助力个人品牌的打造,让你的职业生涯乘风破浪。AI前端开发技能如何提升个人竞争力在竞争日益激烈的IT行业,高效的开发能力是建立个人品牌的基础。而AI赋能的前端开发,正为开发者提供了前所未有的效率提</div>
</li>
<li><a href="/article/1890023199261913088.htm"
title="AI时代前端开发的学习能力:与时俱进的挑战与机遇" target="_blank">AI时代前端开发的学习能力:与时俱进的挑战与机遇</a>
<span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
<div>在飞速发展的科技浪潮中,前端开发领域正经历着翻天覆地的变化。得益于AI写代码工具的兴起,低代码/无代码开发模式日益普及,各种新技术、新框架、新工具层出不穷,这无疑对前端工程师的学习能力提出了更高的要求。本文将探讨AI时代前端工程师所需的学习能力,以及如何应对这些挑战与机遇,最终在AI浪潮中立于不败之地。AI如何改变前端开发模式传统的软件开发流程往往需要大量的代码编写和调试,耗时费力。而AI的介入,</div>
</li>
<li><a href="/article/1890023184695095296.htm"
title="【2024年华为OD机试】 (C卷,200分)- 亲子游戏(JavaScript&Java & Python&C/C++)" target="_blank">【2024年华为OD机试】 (C卷,200分)- 亲子游戏(JavaScript&Java & Python&C/C++)</a>
<span class="text-muted">妄北y</span>
<a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95%E6%B1%87%E9%9B%86%E7%AC%94%E8%AE%B0%E6%80%BB%E7%BB%93%28%E4%BF%9D%E5%A7%86%E7%BA%A7%29/1.htm">算法汇集笔记总结(保姆级)</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E7%9F%A9%E9%98%B5/1.htm">矩阵</a>
<div>一、问题描述宝宝和妈妈的糖果游戏问题题目描述在一个N×N的二维矩阵中,宝宝和妈妈分别用抽签决定自己的初始位置。每个格子可能有不同的糖果数量,同时部分格子有障碍物,妈妈需要遵循以下规则:妈妈必须在最短的时间内到达宝宝的位置(每单位时间只能移动一步)。妈妈沿路可以拾取格子上的糖果,糖果数量会累加。妈妈不能走障碍物的格子,只能上下左右移动。如果妈妈无法到达宝宝,则输出-1。输入格式:第一行输入为N,表示</div>
</li>
<li><a href="/article/1890023069599199232.htm"
title="AI时代前端开发:团队协作与AI代码生成工具的完美结合" target="_blank">AI时代前端开发:团队协作与AI代码生成工具的完美结合</a>
<span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
<div>在AI时代,前端开发面临着前所未有的挑战。项目复杂度不断提升,交付速度要求越来越快,这给团队协作带来了巨大的压力。高效的团队协作不再是锦上添花,而是应对这些挑战的关键。而AI写代码工具的出现,正为前端团队带来一场效率革命,重塑着团队协作的新模式。AI时代前端开发的团队协作新模式传统的前端开发团队协作模式常常面临诸多痛点。沟通成本高是其中一个主要问题,开发人员、设计师和产品经理之间需要花费大量时间进</div>
</li>
<li><a href="/article/1890021925179158528.htm"
title="html+Canvas+js 实现 图片的剪裁效果" target="_blank">html+Canvas+js 实现 图片的剪裁效果</a>
<span class="text-muted">慕容屠苏</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A7%E5%89%8D%E7%AB%AF%E7%88%AC%E5%9D%91%E4%B9%8B%E8%B7%AF/1.htm">大前端爬坑之路</a>
<div>html+Canvas实现图片的剪裁效果开发过程中我们上传图片的时候,有时需要保证图片尺寸的统一,以避免以固定尺寸显示图片时会出现拉伸问题。这是就需要在上传之前对图片进行裁剪后再上传图片。我们裁剪图片将会用到canvas:canvas是HTML5中的一个新元素,这个元素可以通过JavaScript用来绘制图形。例如可以用它来画图、合成图象、做一些动画等。通常呢,我们在canvas上画图的方法是使用</div>
</li>
<li><a href="/article/1890021168061149184.htm"
title="XUnity.AutoTranslator 项目下载及安装教程" target="_blank">XUnity.AutoTranslator 项目下载及安装教程</a>
<span class="text-muted">奚龙韦Rhoda</span>
<div>XUnity.AutoTranslator项目下载及安装教程XUnity.AutoTranslator项目地址:https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator1.项目介绍XUnity.AutoTranslator是一个用于自动翻译Unity游戏内容的插件。它支持多种翻译服务,并提供了手动翻译的工具。该插件适用于多种Unity游戏,并且</div>
</li>
<li><a href="/article/1890020915480162304.htm"
title="XUnity Auto Translator:游戏翻译的终极解决方案" target="_blank">XUnity Auto Translator:游戏翻译的终极解决方案</a>
<span class="text-muted">林泽炯</span>
<div>XUnityAutoTranslator:游戏翻译的终极解决方案XUnity.AutoTranslator项目地址:https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator项目介绍XUnityAutoTranslator是一款专为Unity游戏设计的先进翻译插件,旨在自动翻译基于Unity引擎的游戏内容,同时也提供了手动翻译所需的工具。该插件能</div>
</li>
<li><a href="/article/1890020284363239424.htm"
title="DeepSeek使用手册,其中一份是清华大学出品" target="_blank">DeepSeek使用手册,其中一份是清华大学出品</a>
<span class="text-muted">cpa007</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%91%E8%AE%A1%E7%AE%97/1.htm">云计算</a>
<div>自娶,。https://pan.quark.cn/s/d174471b17c0深入了解DeepSeek:从技术到应用一、DeepSeek是什么?DeepSeek(深度求索)是一款由杭州深度求索人工智能基础技术研究有限公司开发的人工智能平台,专注于提供高效易用的AI模型训练与推理能力。它既包含预训练大语言模型(如DeepSeek-R1系列),也提供配套工具链,助力开发者快速实现AI应用落地。二、De</div>
</li>
<li><a href="/article/1890017902313140224.htm"
title="获取 OpenAI o1-preview/o1-Mini API key 进行 API 调用的详细教程" target="_blank">获取 OpenAI o1-preview/o1-Mini API key 进行 API 调用的详细教程</a>
<span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/openaiapikey/1.htm">openaiapikey</a>
<div>如何使用OpenAI推理模型:o1-preview/o1-Mini模型的API调用在快速发展的人工智能领域,OpenAI推出了o1系列模型(草莓),包括o1-preview和o1-Mini。这些模型旨在执行复杂的推理任务,成为开发人员和研究人员的强大工具。本文将介绍如何使用这些模型进行API调用。1.openaiapikey获取首先,您需要一个OpenAIAPI密钥。您可以在OpenAI的官方网站</div>
</li>
<li><a href="/article/1890016757616275456.htm"
title="【Linux】cron计划任务定时执行命令" target="_blank">【Linux】cron计划任务定时执行命令</a>
<span class="text-muted">菜萝卜子</span>
<a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a>
<div>在Linux系统中,crontab是一种用于设置周期性执行任务的工具,通过编辑crontab文件,用户可以指定在特定时间自动运行命令或脚本。以下是关于crontab的详细介绍:1.crontab基本结构每个crontab任务由一行配置组成,格式为:*****command-to-execute五个时间字段依次表示:分钟(0-59)小时(0-23)日期(1-31)月份(1-12)星期(0-7,0和7</div>
</li>
<li><a href="/article/1890015875197628416.htm"
title="【Unity射击插件】Third Person Cover Shooter Template 快速制作带有掩体射击机制的第三人称射击游戏。" target="_blank">【Unity射击插件】Third Person Cover Shooter Template 快速制作带有掩体射击机制的第三人称射击游戏。</a>
<span class="text-muted">Unity游戏资源学习屋</span>
<a class="tag" taget="_blank" href="/search/Unity%E6%8F%92%E4%BB%B6/1.htm">Unity插件</a><a class="tag" taget="_blank" href="/search/Unity%E5%B0%84%E5%87%BB%E6%8F%92%E4%BB%B6/1.htm">Unity射击插件</a>
<div>ThirdPersonCoverShooterTemplate是一个用于Unity的插件,旨在帮助开发者快速制作带有掩体射击机制的第三人称射击游戏。这个模板为开发者提供了基础的系统和工具,便于实现游戏中的角色控制、战斗、掩体机制以及敌人AI行为。主要特点:第三人称角色控制器提供了基础的第三人称角色控制功能,包括角色移动、跳跃、旋转等。玩家可以流畅地操作角色。掩体系统玩家可以在游戏中自动与环境中的掩</div>
</li>
<li><a href="/article/1890015117844738048.htm"
title="python爬虫6个经典常用案例(完整代码)" target="_blank">python爬虫6个经典常用案例(完整代码)</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/%E7%88%AC%E8%99%AB/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><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/pycharm/1.htm">pycharm</a>
<div>文章目录1.抓取静态网页内容2.抓取多个网页(分页)3.使用正则表达式提取数据4.处理动态内容(使用Selenium)5.抓取带有登录认证的网页6.使用Scrapy框架Python爬虫是一种强大的工具,可以用来从网页中提取数据。以下是六个常用的Python爬虫案例,涵盖了从简单的网页抓取到更复杂的动态内容抓取。1.抓取静态网页内容目标:抓取一个静态网页的内容,并提取其中的特定信息。示例:抓取一个新</div>
</li>
<li><a href="/article/1890012975088070656.htm"
title="C语言控制语句:掌握编程的“指挥棒”" target="_blank">C语言控制语句:掌握编程的“指挥棒”</a>
<span class="text-muted">晚风る</span>
<a class="tag" taget="_blank" href="/search/C%E8%AF%AD%E8%A8%80/1.htm">C语言</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a>
<div>在编程的世界里,代码的执行流程就像一场精心编排的舞蹈,而控制语句则是这场舞蹈的指挥棒。C语言提供了多种控制语句,帮助我们灵活地控制程序的执行路径。今天,就让我们深入探索这些强大的工具,包括条件判断语句、循环执行语句和转向语句,让它们成为你编程中的得力助手。一、条件判断语句:分岔路口的抉择1.1if语句if语句是最基本的条件判断语句,它根据条件的真假来决定是否执行某段代码。它的语法结构如下:cif(</div>
</li>
<li><a href="/article/1890010954939297792.htm"
title="【附源码】108个Python实战项目,练完能力飙升" target="_blank">【附源码】108个Python实战项目,练完能力飙升</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/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/pycharm/1.htm">pycharm</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a>
<div>学Python不实战是万万不能的,在这里整理了108个Python实战项目列表,都有完整且详细的教程,分享给大家。1.Python图片转字符画2.200行Python代码实现204813.Python3实现火车票查询工具4.高德API+Python解决租房问题5.IPython3色情图片识别6.Python破解验证码7.Python实现简单的web服务器8.Ipygame开发打飞机游戏9.Djan</div>
</li>
<li><a href="/article/1890006545211650048.htm"
title="【一看就会】Autoware.universe的“规划”部分源码梳理【三十五】(motion_velocity_planner第四部分)" target="_blank">【一看就会】Autoware.universe的“规划”部分源码梳理【三十五】(motion_velocity_planner第四部分)</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/%E8%87%AA%E5%8A%A8%E9%A9%BE%E9%A9%B6/1.htm">自动驾驶</a>
<div>文章目录前言四、autoware_motion_velocity_out_of_lane_module功能概述处理流程图输入输出关键算法实现主要参数配置安全参数速度参数检测参数工作流程各文件主要功能核心功能文件:工具类文件:源码注释calculate_slowdown_points.cppfilter_predicted_objects.cppfootprint.cppdebug.cpp总结前言书</div>
</li>
<li><a href="/article/1890004904680943616.htm"
title="javascript中Object对象常用方法总结" target="_blank">javascript中Object对象常用方法总结</a>
<span class="text-muted">善良的农场主</span>
<a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a>
<div>1.Object.createObject.create的语法:Object.create(proto,[propertiesObject]),创建一个对象,新创建的对象的prototype指向第一个参数,第二个参数是为新创建对象添加属性proto是原型对象propertiesObject是属性的配置在详解Object.create之前,我们先回忆一下常用的创建对象的方法:1.{},2.newOb</div>
</li>
<li><a href="/article/1890003263378485248.htm"
title="机器人学(五):机器人工具坐标系标定" target="_blank">机器人学(五):机器人工具坐标系标定</a>
<span class="text-muted">巴普蒂斯塔</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E4%BA%BA%E5%AD%A6/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/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%A0%87%E5%AE%9A/1.htm">标定</a><a class="tag" taget="_blank" href="/search/%E5%9D%90%E6%A0%87%E7%B3%BB%E6%A0%87%E5%AE%9A/1.htm">坐标系标定</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E6%A2%B0%E8%87%82/1.htm">机械臂</a>
<div>一、问题1.1工具坐标系的位置标定已知机械臂末端坐标系End相对于机械臂基坐标系Base的位姿关系可以实时测量得到,求机械臂末端连接的工具TCP相对于End坐标系的平移变换。1.2工具坐标系的姿态标定已知机械臂末端坐标系End相对于机械臂基坐标系Base的位姿关系</div>
</li>
<li><a href="/article/1890000491086147584.htm"
title="存储过程与触发器:提高数据库性能与安全性的利器" target="_blank">存储过程与触发器:提高数据库性能与安全性的利器</a>
<span class="text-muted">qcidyu</span>
<a class="tag" taget="_blank" href="/search/%E6%96%87%E7%AB%A0%E5%BD%92%E6%A1%A3/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/%E6%95%B0%E6%8D%AE%E5%AE%8C%E6%95%B4%E6%80%A7/1.htm">数据完整性</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%AE%89%E5%85%A8/1.htm">数据库安全</a><a class="tag" taget="_blank" href="/search/SQL%E6%B3%A8%E5%85%A5/1.htm">SQL注入</a><a class="tag" taget="_blank" href="/search/%E5%8F%82%E6%95%B0%E5%8C%96%E6%9F%A5%E8%AF%A2/1.htm">参数化查询</a><a class="tag" taget="_blank" href="/search/%E8%A7%A6%E5%8F%91%E5%99%A8/1.htm">触发器</a><a class="tag" taget="_blank" href="/search/%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B/1.htm">存储过程</a>
<div>title:存储过程与触发器:提高数据库性能与安全性的利器date:2025/2/12updated:2025/2/12author:cmdragonexcerpt:在现代数据库管理中,存储过程和触发器是两种强大的工具,能够极大提升操作效率和数据完整性。categories:前端开发tags:存储过程触发器SQL注入参数化查询数据库安全数据完整性性能优化扫描二维码关注或者微信搜一搜:编程智域前端至</div>
</li>
<li><a href="/article/1889998979605786624.htm"
title="13天Java进阶笔记-day13-XML和Dom4j、装饰模式、工厂模式、commons-io工具包" target="_blank">13天Java进阶笔记-day13-XML和Dom4j、装饰模式、工厂模式、commons-io工具包</a>
<span class="text-muted">madao10086+</span>
<a class="tag" taget="_blank" href="/search/Java%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1.htm">Java学习笔记</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jar/1.htm">jar</a>
<div>第一章Dom4jDom4j获取Document对象和根元素dom4j属于第三方技术,必须导入该框架!!dom4j安装步骤:去dom4j官网下载dom4j的框架:都是一些jar包。把dom4j的核心jar包导入到当前项目中去。在项目中创建一个文件夹:lib将dom4j-2.1.1.jar文件复制到lib文件夹在jar文件上点右键,选择AddasLibrary->点击OK在类中导包使用Java提供了C</div>
</li>
<li><a href="/article/101.htm"
title="数据采集高并发的架构应用" target="_blank">数据采集高并发的架构应用</a>
<span class="text-muted">3golden</span>
<a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a>
<div>问题的出发点:
最近公司为了发展需要,要扩大对用户的信息采集,每个用户的采集量估计约2W。如果用户量增加的话,将会大量照成采集量成3W倍的增长,但是又要满足日常业务需要,特别是指令要及时得到响应的频率次数远大于预期。
&n</div>
</li>
<li><a href="/article/228.htm"
title="不停止 MySQL 服务增加从库的两种方式" target="_blank">不停止 MySQL 服务增加从库的两种方式</a>
<span class="text-muted">brotherlamp</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/linux%E8%A7%86%E9%A2%91/1.htm">linux视频</a><a class="tag" taget="_blank" href="/search/linux%E8%B5%84%E6%96%99/1.htm">linux资料</a><a class="tag" taget="_blank" href="/search/linux%E6%95%99%E7%A8%8B/1.htm">linux教程</a><a class="tag" taget="_blank" href="/search/linux%E8%87%AA%E5%AD%A6/1.htm">linux自学</a>
<div>现在生产环境MySQL数据库是一主一从,由于业务量访问不断增大,故再增加一台从库。前提是不能影响线上业务使用,也就是说不能重启MySQL服务,为了避免出现其他情况,选择在网站访问量低峰期时间段操作。
一般在线增加从库有两种方式,一种是通过mysqldump备份主库,恢复到从库,mysqldump是逻辑备份,数据量大时,备份速度会很慢,锁表的时间也会很长。另一种是通过xtrabacku</div>
</li>
<li><a href="/article/355.htm"
title="Quartz——SimpleTrigger触发器" target="_blank">Quartz——SimpleTrigger触发器</a>
<span class="text-muted">eksliang</span>
<a class="tag" taget="_blank" href="/search/SimpleTrigger/1.htm">SimpleTrigger</a><a class="tag" taget="_blank" href="/search/TriggerUtils/1.htm">TriggerUtils</a><a class="tag" taget="_blank" href="/search/quartz/1.htm">quartz</a>
<div>转载请出自出处:http://eksliang.iteye.com/blog/2208166 一.概述
SimpleTrigger触发器,当且仅需触发一次或者以固定时间间隔周期触发执行;
二.SimpleTrigger的构造函数
SimpleTrigger(String name, String group):通过该构造函数指定Trigger所属组和名称;
Simpl</div>
</li>
<li><a href="/article/482.htm"
title="Informatica应用(1)" target="_blank">Informatica应用(1)</a>
<span class="text-muted">18289753290</span>
<a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/workflow/1.htm">workflow</a><a class="tag" taget="_blank" href="/search/lookup/1.htm">lookup</a><a class="tag" taget="_blank" href="/search/%E7%BB%84%E4%BB%B6/1.htm">组件</a><a class="tag" taget="_blank" href="/search/Informatica/1.htm">Informatica</a>
<div>1.如果要在workflow中调用shell脚本有一个command组件,在里面设置shell的路径;调度wf可以右键出现schedule,现在用的是HP的tidal调度wf的执行。
2.designer里面的router类似于SSIS中的broadcast(多播组件);Reset_Workflow_Var:参数重置 (比如说我这个参数初始是1在workflow跑得过程中变成了3我要在结束时还要</div>
</li>
<li><a href="/article/609.htm"
title="python 获取图片验证码中文字" target="_blank">python 获取图片验证码中文字</a>
<span class="text-muted">酷的飞上天空</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
<div>根据现成的开源项目 http://code.google.com/p/pytesser/改写
在window上用easy_install安装不上 看了下源码发现代码很少 于是就想自己改写一下
添加支持网络图片的直接解析
#coding:utf-8
#import sys
#reload(sys)
#sys.s</div>
</li>
<li><a href="/article/736.htm"
title="AJAX" target="_blank">AJAX</a>
<span class="text-muted">永夜-极光</span>
<a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a>
<div>1.AJAX功能:动态更新页面,减少流量消耗,减轻服务器负担
2.代码结构:
<html>
<head>
<script type="text/javascript">
function loadXMLDoc()
{
.... AJAX script goes here ...
</div>
</li>
<li><a href="/article/863.htm"
title="创业OR读研" target="_blank">创业OR读研</a>
<span class="text-muted">随便小屋</span>
<a class="tag" taget="_blank" href="/search/%E5%88%9B%E4%B8%9A/1.htm">创业</a>
<div> 现在研一,有种想创业的想法,不知道该不该去实施。因为对于的我情况这两者是矛盾的,可能就是鱼与熊掌不能兼得。
研一的生活刚刚过去两个月,我们学校主要的是</div>
</li>
<li><a href="/article/990.htm"
title="需求做得好与坏直接关系着程序员生活质量" target="_blank">需求做得好与坏直接关系着程序员生活质量</a>
<span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/IT+%E7%94%9F%E6%B4%BB/1.htm">IT 生活</a>
<div>
这个故事还得从去年换工作的事情说起,由于自己不太喜欢第一家公司的环境我选择了换一份工作。去年九月份我入职现在的这家公司,专门从事金融业内软件的开发。十一月份我们整个项目组前往北京做现场开发,从此苦逼的日子开始了。
系统背景:五月份就有同事前往甲方了解需求一直到6月份,后续几个月也完</div>
</li>
<li><a href="/article/1117.htm"
title="如何定义和区分高级软件开发工程师" target="_blank">如何定义和区分高级软件开发工程师</a>
<span class="text-muted">aoyouzi</span>
<div>在软件开发领域,高级开发工程师通常是指那些编写代码超过 3 年的人。这些人可能会被放到领导的位置,但经常会产生非常糟糕的结果。Matt Briggs 是一名高级开发工程师兼 Scrum 管理员。他认为,单纯使用年限来划分开发人员存在问题,两个同样具有 10 年开发经验的开发人员可能大不相同。近日,他发表了一篇博文,根据开发者所能发挥的作用划分软件开发工程师的成长阶段。
初</div>
</li>
<li><a href="/article/1244.htm"
title="Servlet的请求与响应" target="_blank">Servlet的请求与响应</a>
<span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/servlet/1.htm">servlet</a><a class="tag" taget="_blank" href="/search/get%E6%8F%90%E4%BA%A4/1.htm">get提交</a><a class="tag" taget="_blank" href="/search/java%E5%A4%84%E7%90%86post%E6%8F%90%E4%BA%A4/1.htm">java处理post提交</a>
<div>
Servlet是tomcat中的一个重要组成,也是负责客户端和服务端的中介
1,Http的请求方式(get ,post);
客户端的请求一般都会都是Servlet来接受的,在接收之前怎么来确定是那种方式提交的,以及如何反馈,Servlet中有相应的方法, http的get方式 servlet就是都doGet(</div>
</li>
<li><a href="/article/1371.htm"
title="web.xml配置详解之listener" target="_blank">web.xml配置详解之listener</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/listener/1.htm">listener</a>
<div>一.定义
<listener>
<listen-class>com.myapp.MyListener</listen-class>
</listener>
二.作用 该元素用来注册一个监听器类。可以收到事件什么时候发生以及用什么作为响</div>
</li>
<li><a href="/article/1498.htm"
title="Web页面性能优化(yahoo技术)" target="_blank">Web页面性能优化(yahoo技术)</a>
<span class="text-muted">Bill_chen</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/Yahoo/1.htm">Yahoo</a>
<div>1.尽可能的减少HTTP请求数 content
2.使用CDN server
3.添加Expires头(或者 Cache-control) server
4.Gzip 组件 server
5.把CSS样式放在页面的上方。 css
6.将脚本放在底部(包括内联的) javascript
7.避免在CSS中使用Expressions css
8.将javascript和css独立成外部文</div>
</li>
<li><a href="/article/1625.htm"
title="【MongoDB学习笔记八】MongoDB游标、分页查询、查询结果排序" target="_blank">【MongoDB学习笔记八】MongoDB游标、分页查询、查询结果排序</a>
<span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a>
<div>游标
游标,简单的说就是一个查询结果的指针。游标作为数据库的一个对象,使用它是包括
声明
打开
循环抓去一定数目的文档直到结果集中的所有文档已经抓取完
关闭游标
游标的基本用法,类似于JDBC的ResultSet(hasNext判断是否抓去完,next移动游标到下一条文档),在获取一个文档集时,可以提供一个类似JDBC的FetchSize</div>
</li>
<li><a href="/article/1752.htm"
title="ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法" target="_blank">ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法</a>
<span class="text-muted">白糖_</span>
<a class="tag" taget="_blank" href="/search/ORA-12514/1.htm">ORA-12514</a>
<div> 今天通过Oracle SQL*Plus连接远端服务器的时候提示“监听程序当前无法识别连接描述符中请求服务”,遂在网上找到了解决方案:
①打开Oracle服务器安装目录\NETWORK\ADMIN\listener.ora文件,你会看到如下信息:
# listener.ora Network Configuration File: D:\database\Oracle\net</div>
</li>
<li><a href="/article/1879.htm"
title="Eclipse 问题 A resource exists with a different case" target="_blank">Eclipse 问题 A resource exists with a different case</a>
<span class="text-muted">bozch</span>
<a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a>
<div>在使用Eclipse进行开发的时候,出现了如下的问题:
Description Resource Path Location TypeThe project was not built due to "A resource exists with a different case: '/SeenTaoImp_zhV2/bin/seentao'.&</div>
</li>
<li><a href="/article/2006.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>
public class AptElevator {
/**
* 编程之美 小飞 电梯调度算法
* 在繁忙的时间,每次电梯从一层往上走时,我们只允许电梯停在其中的某一层。
* 所有乘客都从一楼上电梯,到达某层楼后,电梯听下来,所有乘客再从这里爬楼梯到自己的目的层。
* 在一楼时,每个乘客选择自己的目的层,电梯则自动计算出应停的楼层。
* 问:电梯停在哪</div>
</li>
<li><a href="/article/2133.htm"
title="SQL注入相关概念" target="_blank">SQL注入相关概念</a>
<span class="text-muted">chenbowen00</span>
<a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
<div>SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。
首先让我们了解什么时候可能发生SQ</div>
</li>
<li><a href="/article/2260.htm"
title="[光与电]光子信号战防御原理" target="_blank">[光与电]光子信号战防御原理</a>
<span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/%E5%8E%9F%E7%90%86/1.htm">原理</a>
<div>
无论是在战场上,还是在后方,敌人都有可能用光子信号对人体进行控制和攻击,那么采取什么样的防御方法,最简单,最有效呢?
我们这里有几个山寨的办法,可能有些作用,大家如果有兴趣可以去实验一下
根据光</div>
</li>
<li><a href="/article/2387.htm"
title="oracle 11g新特性:Pending Statistics" target="_blank">oracle 11g新特性:Pending Statistics</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/dbms_stats/1.htm">dbms_stats</a>
<div>oracle 11g新特性:Pending Statistics 转
从11g开始,表与索引的统计信息收集完毕后,可以选择收集的统信息立即发布,也可以选择使新收集的统计信息处于pending状态,待确定处于pending状态的统计信息是安全的,再使处于pending状态的统计信息发布,这样就会避免一些因为收集统计信息立即发布而导致SQL执行计划走错的灾难。
在 11g 之前的版本中,D</div>
</li>
<li><a href="/article/2514.htm"
title="快速理解RequireJs" target="_blank">快速理解RequireJs</a>
<span class="text-muted">dengkane</span>
<a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/requirejs/1.htm">requirejs</a>
<div>RequireJs已经流行很久了,我们在项目中也打算使用它。它提供了以下功能:
声明不同js文件之间的依赖
可以按需、并行、延时载入js库
可以让我们的代码以模块化的方式组织
初看起来并不复杂。 在html中引入requirejs
在HTML中,添加这样的 <script> 标签:
<script src="/path/to</div>
</li>
<li><a href="/article/2641.htm"
title="C语言学习四流程控制if条件选择、for循环和强制类型转换" target="_blank">C语言学习四流程控制if条件选择、for循环和强制类型转换</a>
<span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/c/1.htm">c</a>
<div># include <stdio.h>
int main(void)
{
int i, j;
scanf("%d %d", &i, &j);
if (i > j)
printf("i大于j\n");
else
printf("i小于j\n");
retu</div>
</li>
<li><a href="/article/2768.htm"
title="dictionary的使用要注意" target="_blank">dictionary的使用要注意</a>
<span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/IO/1.htm">IO</a>
<div>NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
user.user_id , @"id",
user.username , @"username",
</div>
</li>
<li><a href="/article/2895.htm"
title="Android 中的资源访问(Resource)" target="_blank">Android 中的资源访问(Resource)</a>
<span class="text-muted">finally_m</span>
<a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/String/1.htm">String</a><a class="tag" taget="_blank" href="/search/drawable/1.htm">drawable</a><a class="tag" taget="_blank" href="/search/color/1.htm">color</a>
<div>
简单的说,Android中的资源是指非代码部分。例如,在我们的Android程序中要使用一些图片来设置界面,要使用一些音频文件来设置铃声,要使用一些动画来显示特效,要使用一些字符串来显示提示信息。那么,这些图片、音频、动画和字符串等叫做Android中的资源文件。
在Eclipse创建的工程中,我们可以看到res和assets两个文件夹,是用来保存资源文件的,在assets中保存的一般是原生</div>
</li>
<li><a href="/article/3022.htm"
title="Spring使用Cache、整合Ehcache" target="_blank">Spring使用Cache、整合Ehcache</a>
<span class="text-muted">234390216</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/cache/1.htm">cache</a><a class="tag" taget="_blank" href="/search/ehcache/1.htm">ehcache</a><a class="tag" taget="_blank" href="/search/%40Cacheable/1.htm">@Cacheable</a>
<div>Spring使用Cache
从3.1开始,Spring引入了对Cache的支持。其使用方法和原理都类似于Spring对事务管理的支持。Spring Cache是作用在方法上的,其核心思想是这样的:当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存放在缓存中,等到下次利用同样的</div>
</li>
<li><a href="/article/3149.htm"
title="当druid遇上oracle blob(clob)" target="_blank">当druid遇上oracle blob(clob)</a>
<span class="text-muted">jackyrong</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a>
<div>http://blog.csdn.net/renfufei/article/details/44887371
众所周知,Oracle有很多坑, 所以才有了去IOE。
在使用Druid做数据库连接池后,其实偶尔也会碰到小坑,这就是使用开源项目所必须去填平的。【如果使用不开源的产品,那就不是坑,而是陷阱了,你都不知道怎么去填坑】
用Druid连接池,通过JDBC往Oracle数据库的</div>
</li>
<li><a href="/article/3276.htm"
title="easyui datagrid pagination获得分页页码、总页数等信息" target="_blank">easyui datagrid pagination获得分页页码、总页数等信息</a>
<span class="text-muted">ldzyz007</span>
<div>var grid = $('#datagrid');
var options = grid.datagrid('getPager').data("pagination").options;
var curr = options.pageNumber;
var total = options.total;
var max =</div>
</li>
<li><a href="/article/3403.htm"
title="浅析awk里的数组" target="_blank">浅析awk里的数组</a>
<span class="text-muted">nigelzeng</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%8C%E7%BB%B4%E6%95%B0%E7%BB%84/1.htm">二维数组</a><a class="tag" taget="_blank" href="/search/array/1.htm">array</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E7%BB%84/1.htm">数组</a><a class="tag" taget="_blank" href="/search/awk/1.htm">awk</a>
<div>awk绝对是文本处理中的神器,它本身也是一门编程语言,还有许多功能本人没有使用到。这篇文章就单单针对awk里的数组来进行讨论,如何利用数组来帮助完成文本分析。
有这么一组数据:
abcd,91#31#2012-12-31 11:24:00
case_a,136#19#2012-12-31 11:24:00
case_a,136#23#2012-12-31 1</div>
</li>
<li><a href="/article/3530.htm"
title="搭建 CentOS 6 服务器(6) - TigerVNC" target="_blank">搭建 CentOS 6 服务器(6) - TigerVNC</a>
<span class="text-muted">rensanning</span>
<a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a>
<div>安装GNOME桌面环境
# yum groupinstall "X Window System" "Desktop"
安装TigerVNC
# yum -y install tigervnc-server tigervnc
启动VNC服务
# /etc/init.d/vncserver restart
# vncser</div>
</li>
<li><a href="/article/3657.htm"
title="Spring 数据库连接整理" target="_blank">Spring 数据库连接整理</a>
<span class="text-muted">tomcat_oracle</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/jdbc/1.htm">jdbc</a>
<div>1、数据库连接jdbc.properties配置详解 jdbc.url=jdbc:hsqldb:hsql://localhost/xdb jdbc.username=sa jdbc.password= jdbc.driver=不同的数据库厂商驱动,此处不一一列举 接下来,详细配置代码如下:
Spring连接池 </div>
</li>
<li><a href="/article/3784.htm"
title="Dom4J解析使用xpath java.lang.NoClassDefFoundError: org/jaxen/JaxenException异常" target="_blank">Dom4J解析使用xpath java.lang.NoClassDefFoundError: org/jaxen/JaxenException异常</a>
<span class="text-muted">xp9802</span>
<div>用Dom4J解析xml,以前没注意,今天使用dom4j包解析xml时在xpath使用处报错
异常栈:java.lang.NoClassDefFoundError: org/jaxen/JaxenException异常
导入包 jaxen-1.1-beta-6.jar 解决;
&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>