Web学习之开篇

Web开发需要用到哪些技术?

这套系统介绍使用JavaScript来完成Web开发,我们在学习js之前需要了解一下相关HTML、CSS。
HTML:定义网页内容
CSS:描述网页的布局
JavaScript:网页的行为

HTML 学习

 HTML学习网站

  HTML不是编程语言,而是标记语言。类似Markdown一样也是标记语言(不要被吓到,这个语法很简单,此文就是Markdown写的)。
&empt; 注意先声明当前HTML版本,其次就通过标签内声明源文件,声明浏览器展示内容。
标签中通过声明文本标题、<meta>声明元数据,如定义王爷编码格式为utf-8等<br> <body>标签中涉及标题格式、段落格式<br> <a href="http://www.baidu.com"> 这是百度网地址 </a><br> <img src="/images/logo.png" width="258" height="39" /><br> <hr /> 画水平线<br> <font size="1">这是1号字体文本</font><br> <sub> 下标</sub> 和 <sup> 上标</sup><br> <head> 元素包含了所有的头部标签元素。在 <head>元素中你可以插入脚本(scripts), 样式文件(CSS),及各种meta信息。<br> 可以添加在头部区域的元素标签为: <title>, <style>, <meta>, <link>, <script>, <noscript> 和 <base>。<br> <link> 标签定义了文档与外部资源之间的关系。</p> <p><link rel="stylesheet" type="text/css" href="https://www.baidu.com/css/bcd<sub>bcmobile</sub>bcpc.9837752f.css"></p> <p>内联样式- 在HTML元素中使用"style" 属性<br> <p style="color:blue;margin-left:20px;">这是一个段落。</p><br> 内部样式表:</p> <pre><code><head> <style type="text/css"> body {background-color:yellow;} p {color:blue;} </style> </head> </code></pre> <p>外部样式表:</p> <pre><code><head> <link rel="stylesheet" type="text/css" href="mystyle.css"> </head> </code></pre> <p><table>表格标签<br> <tr>若干行<br> <td>单元格的内容</p> <pre><code><table border="1"> <tr> <td>row 1, cell 1</td> <td>row 1, cell 2</td> </tr> <tr> <td>row 2, cell 1</td> <td>row 2, cell 2</td> </tr> </table> </code></pre> <p><div>定义块级<br> <span>组合文档的行内元素,内联元素<br> <form> 表单标签 里面经常包含的元素有,input输入的文本域、密码字段、单选按钮、复选框、提交按钮</p> <h3>CSS 学习</h3> <p> CSS学习网站<br> CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明:<br> 选择器通常是您需要改变样式的 HTML 元素。<br> 每条声明由一个属性和一个值组成。<br> 在head标签中,通过style标签给不同的body、h、p等元素进行编辑。<br> css中id 选择器(指定特定id的样式)、class 选择器(指定一组元素的样式)<br> id是通过#来进行标记的<br> class通过一个点 . 来表示。也可以指定某个标签的所有元素使用某个样式例如:p.center。指定所有p元素使用<br> 外部样式表:很多页面时,外部样式表将是理想的选择<link rel="xxx"><br> 内部样式表:单个文档需要特殊的样式时,就应该使用内部样式表。< style ><br> 内联样式:内联样式会损失掉样式表的许多优势。请慎用这种方法<p style="color:sienna;margin-left:20px">这是一个段落。</p><br> 多重样式:<br> <strong>CSS盒子模型:</strong><br> Margin(外边距) - 清除边框外的区域,外边距是透明的。<br> Border(边框) - 围绕在内边距和内容外的边框。<br> Padding(内边距) - 清除内容周围的区域,内边距是透明的。<br> 总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距<br> <strong>重要:</strong> 当您指定一个 CSS 元素的宽度和高度属性时,你只是设置内容区域的宽度和高度。要知道,完整大小的元素,你还必须添加内边距,边框和边距。<br> <strong>border-style:</strong> 默认无边框 none</p> <h3>JavaScript 学习</h3> <p>JavaScript 学习网站</p> <p>document.getElementById("demo").innerHTML = "段落已修改。"; 插入元素内容<br> 请使用 document.write() 仅仅向文档输出写内容。<br> 如果在文档已完成加载后执行 document.write,整个 HTML 页面将被覆盖。</p> <pre><code>//button 添加点击事件 <button onclick="myFunction()"> <script> function myFunction() { document.write(Date()); } </script> </code></pre> <p>写到控制台<br> console.log(c);</p> <p>数组<br> [40, 100, 1, 5, 25, 10]</p> <p>对象<br> {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}</p> <p>函数<br> function myFunction(a, b) { return a * b;}</p> <p>变量<br> var x, length</p> <p>= + - * / 运算<br> == != < > 判断</p> <p><strong>JavaScript 语句</strong><br> JavaScript 语句是发给浏览器的命令。</p> <p><strong>JavaScript 代码</strong><br> 浏览器按照编写顺序依次执行每条语句。</p> <p><strong>JavaScript 代码块</strong><br> JavaScript 可以分批地组合起来。<br> 代码块以左花括号开始,以右花括号结束。<br> 代码块的作用是一并地执行语句序列。</p> <p><strong>JavaScript 语句标识符</strong><br> try 实现错误处理,与 catch 一同使用。<br> catch 语句块,在 try 语句块执行出错时执行 catch 语句块。</p> <p>您可以在文本字符串中使用反斜杠对代码行进行换行</p> <p>提示:JavaScript 是脚本语言。浏览器会在读取代码时,逐行地执行脚本代码。而对于传统编程来说,会在执行前对所有代码进行编译。</p> <p>注释<br> 注释用于阻止其中一条代码行的执行(可用于调试)</p> <p><strong>JavaScript 数据类型</strong><br> 值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。<br> 引用数据类型:对象(Object)、数组(Array)、函数(Function)。</p> <p><strong>JavaScript 对象</strong><br> 在 JavaScript中,几乎所有的事物都是对象。</p> <p>var person = {<br> firstName: "John",<br> lastName : "Doe",<br> id : 5566,<br> fullName : function()<br> {<br> return this.firstName + " " + this.lastName;<br> }<br> };</p> <p>对象属性<br> JavaScript 对象是键值对的容器</p> <p>访问对象属性<br> name=person.lastname;<br> 或<br> name=person["lastname"];</p> <p>访问对象方法<br> objectName.methodName()</p> <p><strong>JavaScript 函数</strong><br> 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。</p> <p>带参数函数 myFunction(argument1,argument2)</p> <p><strong>带有返回值的函数</strong><br> 函数将值返回调用它的地方</p> <pre><code>function myFunction() { var x=5; return x; } </code></pre> <p>注意: 整个 JavaScript 并不会停止执行,仅仅是函数。JavaScript 将继续执行代码,从调用函数的地方。</p> <p>仅仅希望退出函数时 ,也可使用 return 语句</p> <p><strong>局部 JavaScript 变量</strong><br> 在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)。<br> 您可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。<br> 只要函数运行完毕,本地变量就会被删除。</p> <p><strong>全局 JavaScript 变量</strong><br> 在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。</p> <p><strong>JavaScript 作用域</strong><br> 在 JavaScript 中, 对象和函数同样也是变量。<br> 在 JavaScript 中, 作用域为可访问变量,对象,函数的集合。<br> JavaScript 函数作用域: 作用域在函数内修改。</p> <p>变量在函数内声明,变量为局部作用域。<br> 局部变量:只能在函数内部访问。<br> 因为局部变量只作用于函数内,所以不同的函数可以使用相同名称的变量。<br> 局部变量在函数开始执行时创建,函数执行完后局部变量会自动销毁。</p> <p><strong>JavaScript 全局变量</strong><br> 变量在函数外定义,即为全局变量。<br> 全局变量有 全局作用域: 网页中所有脚本和函数均可使用。</p> <p>如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量。<br> 以下实例中 carName 在函数内,但是为全局变量。</p> <pre><code>// 此处可调用 carName 变量 function myFunction() { carName = "Volvo"; // 此处可调用 carName 变量 } </code></pre> <p><strong>JavaScript 事件</strong><br> HTML 事件是发生在 HTML 元素上的事情。<br> 当在 HTML 页面中使用 JavaScript 时, JavaScript 可以触发这些事件。</p> <p><strong>HTML 事件</strong><br> HTML 事件可以是浏览器行为,也可以是用户行为。</p> <p>事件:<br> HTML 页面完成加载<br> HTML input 字段改变时<br> HTML 按钮被点击</p> <p>可以做的事情。在事件触发时 JavaScript 可以执行一些代码。<br> HTML 元素中可以添加事件属性,使用 JavaScript 代码来添加 HTML 元素。</p> <p><code><some-HTML-element some-event='JavaScript 代码'></code><br> 或者 双引号<br> <code><some-HTML-element some-event="JavaScript 代码"></code></p> <p>举例:<br> JavaScript 代码将修改 id="demo" 元素的内容。<br> <code><button onclick="getElementById('demo').innerHTML=Date()">现在的时间是?</button></code></p> <p>修改自身元素的内容 (使用 this.innerHTML):<br> <code><button onclick="this.innerHTML=Date()">现在的时间是?</button></code></p> <p><strong>常见的HTML事件</strong><br> onchange -----> HTML 元素改变<br> onclick -----> 用户点击 HTML 元素<br> onmouseover ----> 用户在一个HTML元素上移动鼠标<br> onmouseout ----> 用户从一个HTML元素上移开鼠标<br> onkeydown -----> 用户按下键盘按键<br> onload -----> 浏览器已完成页面的加载</p> <p><strong>JavaScript 可以做什么?</strong><br> 事件可以用于处理表单验证,用户输入,用户行为及浏览器动作:</p> <ul> <li>页面加载时触发事件</li> <li>页面关闭时触发事件</li> <li>用户点击按钮执行动作</li> <li>验证用户输入内容的合法性</li> <li>等等 ...</li> </ul> <p>可以使用多种方法来执行 JavaScript 事件代码:</p> <ul> <li>HTML 事件属性可以直接执行 JavaScript 代码</li> <li>HTML 事件属性可以调用 JavaScript 函数</li> <li>你可以为 HTML 元素指定自己的事件处理程序</li> </ul> <p><strong>JavaScript 字符串</strong></p> <p>字符串长度:<br> 可以使用内置属性 length 来计算字符串的长度:</p> <p>特殊字符<br> 因为这样,以下实例 JavaScript 无法解析:<br> "We are the so-called "Vikings" from the north."</p> <p>可以使用反斜杠 () 来转义 "Vikings" 字符串中的双引号,如下:<br> "We are the so-called "Vikings" from the north."<br> charAt() ---> 返回指定索引位置的字符<br> charCodeAt() ---> 返回指定索引位置字符的 Unicode 值<br> concat() ---> 连接两个或多个字符串,返回连接后的字符串<br> fromCharCode() ---> 将 Unicode 转换为字符串<br> indexOf() ---> 返回字符串中检索指定字符第一次出现的位置<br> lastIndexOf() ---> 返回字符串中检索指定字符最后一次出现的位置<br> localeCompare() ---> 用本地特定的顺序来比较两个字符串<br> match() ---> 找到一个或多个正则表达式的匹配<br> replace() ---> 替换与正则表达式匹配的子串<br> search() ---> 检索与正则表达式相匹配的值<br> slice() ---> 提取字符串的片断,并在新的字符串中返回被提取的部分<br> split() ---> 把字符串分割为子字符串数组<br> substr() ---> 从起始索引号提取字符串中指定数目的字符<br> substring() ---> 提取字符串中两个指定的索引号之间的字符<br> toLocaleLowerCase() ---> 根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射<br> toLowerCase() ---> 把字符串转换为小写<br> toString() ---> 返回字符串对象值<br> toUpperCase() ---> 把字符串转换为大写<br> trim() ---> 移除字符串首尾空白<br> valueOf() ----> 返回某个字符串对象的原始值</p> <p><strong>JavaScript 运算符</strong></p> <ul> <li> <ul> <li> <ul> <li>/ % ++ --</li> </ul></li> </ul></li> </ul> <p>用于字符串的 + 运算符<br> 如需把两个或多个字符串变量连接起来,请使用 + 运算符:</p> <p>或者把空格插入表达式中:<br> txt3=txt1+" "+txt2;</p> <p>对字符串和数字进行加法运算<br> 两个数字相加,返回数字相加的和,如果数字与字符串相加,返回字符串,如下实例:<br> x=5+5;<br> y="5"+5;<br> z="Hello"+5;</p> <p>10<br> 55<br> Hello5</p> <p><strong>JavaScript 比较 和 逻辑运算符</strong><br> 比较和逻辑运算符用于测试 true 或者 false。</p> <p>比较运算符</p> <p>== 等于<br> === 绝对等于(值和类型均相等)<br> != 不等于<br> !== 不绝对等于(值和类型有一个不相等,或两个都不相等)</p> <blockquote> <p>大于<br> < 小于<br> = 大于或等于<br> <= 小于或等于</p> </blockquote> <p>逻辑运算符<br> && || !</p> <p>条件运算符<br> voteable=(age<18)?"年龄太小":"年龄已达到";</p> <p><strong>JavaScript if...Else 语句</strong><br> if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码<br> if...else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码<br> if...else if....else 语句- 使用该语句来选择多个代码块之一来执行<br> switch 语句 - 使用该语句来选择多个代码块之一来执行</p> <p>JavaScript switch 语句<br> 工作原理:首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行。</p> <pre><code>var d=new Date().getDay(); switch (d) { case 0:x="今天是星期日"; break; case 1:x="今天是星期一"; break; case 2:x="今天是星期二"; break; case 3:x="今天是星期三"; break; case 4:x="今天是星期四"; break; case 5:x="今天是星期五"; break; case 6:x="今天是星期六"; break; } </code></pre> <p>default 关键词<br> 使用 default 关键词来规定匹配不存在时做的事情:</p> <pre><code>var d=new Date().getDay(); switch (d) { case 6:x="今天是星期六"; break; case 0:x="今天是星期日"; break; default: x="期待周末"; } document.getElementById("demo").innerHTML=x; </code></pre> <p><strong>JavaScript for 循环</strong></p> <pre><code>for (var i=0;i<cars.length;i++) { document.write(cars[i] + "<br>"); } </code></pre> <p><strong>不同类型的循环</strong></p> <ul> <li>for - 循环代码块一定的次数</li> <li>for/in - 循环遍历对象的属性</li> <li>while - 当指定的条件为 true 时循环指定的代码块</li> <li>do/while - 同样当指定的条件为 true 时循环指定的代码块</li> </ul> <pre><code>for (var i=0,len=cars.length; i<len; i++) { document.write(cars[i] + "<br>"); } </code></pre> <ul> <li>for/in - 循环遍历对象的属性,只是遍历对象内部的属性</li> </ul> <pre><code> var x; var txt=""; var person={fname:"Bill",lname:"Gates",age:56}; for (x in person){ txt=txt + person[x]; } document.getElementById("demo").innerHTML=txt; </code></pre> <ul> <li>while - 当指定的条件为 true 时循环指定的代码块</li> </ul> <pre><code>while (i<5) { x=x + "The number is " + i + "<br>"; i++; } </code></pre> <ul> <li>do/while - 同样当指定的条件为 true 时循环指定的代码块</li> </ul> <pre><code> var x="",i=0; do{ x=x + "该数字为 " + i + "<br>"; i++; } while (i<5) document.getElementById("demo").innerHTML=x; </code></pre> <p><strong>JavaScript break 和 continue 语句</strong><br> break 语句用于跳出循环。<br> continue 用于跳过循环中的一个迭代。</p> <p><strong>JavaScript 标签</strong><br> 如需标记 JavaScript 语句,请在语句之前加上冒号:</p> <pre><code>label: statements </code></pre> <pre><code><script> cars=["BMW","Volvo","Saab","Ford"]; list:{ document.write(cars[0] + "<br>"); break list; document.write(cars[1] + "<br>"); document.write(cars[2] + "<br>"); document.write(cars[3] + "<br>"); document.write(cars[4] + "<br>"); document.write(cars[5] + "<br>"); } </script> </code></pre> <p><strong>JavaScript typeof, null, 和 undefined</strong></p> <p>null是一个只有一个值的特殊类型。表示一个空对象引用。<br> var person = null; // 值为 null(空), 但类型为对象</p> <p>你可以设置为 undefined 来清空对象:<br> var person = undefined; // 值为 undefined, 类型为 undefined</p> <p>undefined 是一个没有设置值的变量。<br> 任何变量都可以通过设置值为 undefined 来清空。 类型为 undefined.</p> <p>null 和 undefined 的值相等,但类型不等:</p> <p>你可以使用 constructor 属性来查看对象是否为数组 (包含字符串 "Array"):<br> <code>return myArray.constructor.toString().indexOf("Array") > -1;</code></p> <p><strong>将数字转换为字符串</strong><br> String(x) // 将变量 x 转换为字符串并返回</p> <p>Number 方法 toString() 也是有同样的效果。<br> x.toString()<br> (123).toString()</p> <p>Date 方法<br> 将字符串转换为数字<br> Number("3.14") // 返回 3.14<br> Number 方法</p> <p>一元运算符 +<br> Operator + 可用于将变量转换为数字:</p> <p>将布尔值转换为数字<br> Number(false) // 返回 0<br> Number(true) // 返回 1</p> <p>d = new Date();<br> Number(d) // 返回 1404568027739<br> 日期方法 getTime() 也有相同的效果。</p> <p><strong>JavaScript 正则表达式</strong><br> 正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。<br> 搜索模式可用于文本搜索和文本替换。</p> <p><strong>什么是正则表达式?</strong><br> 正则表达式是由一个字符序列形成的搜索模式。<br> 当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。<br> 正则表达式可以是一个简单的字符,或一个更复杂的模式。<br> 正则表达式可用于所有文本搜索和文本替换的操作。</p> <p><strong>语法</strong><br> /正则表达式主体/修饰符(可选)<br> var patt = /runoob/i</p> <p>/runoob/i 是一个正则表达式。<br> runoob 是一个正则表达式主体 (用于检索)。<br> i 是一个修饰符 (搜索不区分大小写)。</p> <p>在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。</p> <p>search() 方法使用正则表达式</p> <pre><code> var str = "Visit Runoob!"; var n = str.search(/Runoob/i); document.getElementById("demo").innerHTML = n; </code></pre> <p>search() 方法使用字符串</p> <pre><code> var str = "Visit Runoob!"; var n = str.search("Runoob"); document.getElementById("demo").innerHTML = n; </code></pre> <p>replace() 方法使用正则表达式</p> <pre><code> var str = document.getElementById("demo").innerHTML; var txt = str.replace(/microsoft/i,"Runoob"); document.getElementById("demo").innerHTML = txt; </code></pre> <p>replace() 方法使用正则表达式</p> <pre><code> var str = document.getElementById("demo").innerHTML; var txt = str.replace(/microsoft/i,"Runoob"); document.getElementById("demo").innerHTML = txt; </code></pre> <p><strong>JavaScript 错误 - throw、try 和 catch</strong><br> try 语句测试代码块的错误。<br> catch 语句处理错误。<br> throw 语句创建自定义错误。<br> finally 语句在 try 和 catch 语句之后,无论是否有触发异常,该语句都会执行。</p> <p><strong>JavaScript try 和 catch</strong><br> catch 块会捕捉到 try 块中的错误,并执行代码来处理它。</p> <pre><code> try { adddlert("Welcome guest!"); } catch(err) { txt="本页有一个错误。\n\n"; txt+="错误描述:" + err.message + "\n\n"; txt+="点击确定继续。\n\n"; alert(txt); } </code></pre> <p>finally 语句<br> finally 语句不论之前的 try 和 catch 中是否产生异常都会执行该代码块。</p> <p>Throw 语句<br> throw 语句允许我们创建自定义错误。<br> 如果把 throw 与 try 和 catch 一起使用,那么您能够控制程序流,并生成自定义的错误消息。</p> <pre><code>function myFunction() { var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "值为空"; if(isNaN(x)) throw "不是数字"; x = Number(x); if(x < 5) throw "太小"; if(x > 10) throw "太大"; } catch(err) { message.innerHTML = "错误: " + err; } } </code></pre> <p><strong>JavaScript 调试工具</strong><br> 浏览器启用调试工具一般是按下 F12 键,并在调试菜单中选择 "Console" 。<br> mac 调起是按 option+command+i</p> <p><strong>console.log() 方法</strong><br> 如果浏览器支持调试,你可以使用 console.log() 方法在调试窗口上打印 JavaScript 值</p> <p><strong>设置断点</strong><br> 在调试窗口中,你可以设置 JavaScript 代码的断点。<br> 在每个断点上,都会停止执行 JavaScript 代码,以便于我们检查 JavaScript 变量的值。<br> 在检查完毕后,可以重新执行代码(如播放按钮)。</p> <p><strong>debugger 关键字</strong><br> debugger 关键字用于停止执行 JavaScript,并调用调试函数。<br> 注意前提条件: 调试环境</p> <p><strong>Undefined 不是 Null</strong><br> 在 JavaScript 中, null 用于对象, undefined 用于变量,属性和方法。<br> 对象只有被定义才有可能为 null,否则为 undefined。<br> 如果我们想测试对象是否存在,在对象还没定义时将会抛出一个错误。<br> <code>if (typeof myObj !== "undefined" && myObj !== null)</code></p> <p><strong>JavaScript 表单</strong><br> HTML 表单验证可以通过 JavaScript 来完成。<br> 以下实例代码用于判断表单字段(fname)值是否存在, 如果不存在,就弹出信息,阻止表单提交:</p> <pre><code><html> <head> <meta charset="utf-8"> <script> function validateForm() { var x = document.forms["myForm"]["fname"].value; if (x == null || x == "") { alert("需要输入名字。"); return false; } } </script> </head> <body> <form name="myForm" action="demo_form.php" onsubmit="return validateForm()" method="post"> 名字: <input type="text" name="fname"> <input type="submit" value="提交"> </form> </body> </html> </code></pre> <p><strong>数据验证</strong><br> <strong>服务端数据验证</strong>是在数据提交到服务器上后再验证。<br> <strong>客户端数据验证</strong>是在数据发送到服务器前,在浏览器上完成验证。</p> <p><strong>HTML 约束验证</strong><br> 约束验证是表单被提交时浏览器用来实现验证的一种算法。<br> HTML 输入属性<br> CSS 伪类选择器<br> DOM 属性和方法</p> <p>有关的查:HTML 输入属性<br> 有关的查: CSS 伪类</p> <p><strong>JavaScript 表单验证</strong><br> JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证。</p> <ul> <li>验证表单数据是否为空?</li> <li>验证输入是否是一个正确的email地址?</li> <li>验证日期是否输入正确?</li> <li>验证表单输入内容是否为数字型?</li> </ul> <p><strong>JavaScript 验证 API</strong><br> 约束验证 DOM 方法:<br> checkValidity() ---> 如果 input 元素中的数据是合法的返回 true,否则返回 false。</p> <p>setCustomValidity() --->设置 input 元素的 validationMessage 属性,用于自定义错误提示信息的方法。<br> 使用 setCustomValidity 设置了自定义提示后,validity.customError 就会变成true,则 checkValidity 总是会返回false。如果要重新判断需要取消自定义提示.</p> <p><strong>约束验证 DOM 属性</strong><br> validity<br> validationMessage<br> willValidate</p> <p><strong>Validity 属性</strong><br> customError ---> 设置为 true, 如果设置了自定义的 validity 信息。<br> patternMismatch ---> 设置为 true, 如果元素的值不匹配它的模式属性。<br> rangeOverflow ---> 设置为 true, 如果元素的值大于设置的最大值。<br> rangeUnderflow ---> 设置为 true, 如果元素的值小于它的最小值。<br> stepMismatch ---> 设置为 true, 如果元素的值不是按照规定的 step 属性设置。<br> tooLong ---> 设置为 true, 如果元素的值超过了 maxLength 属性设置的长度。<br> typeMismatch ---> 设置为 true, 如果元素的值不是预期相匹配的类型。<br> valueMissing ---> 设置为 true,如果元素 (required 属性) 没有值。<br> valid ---> 设置为 true,如果元素的值是合法的。</p> <p><strong>JavaScript this 关键字</strong><br> 面向对象语言中 this 表示当前对象的一个引用。<br> 但在 JavaScript 中 this 不是固定不变的,它会随着执行环境的改变而改变。</p> <ul> <li>在方法中,this 表示该方法所属的对象。</li> <li>如果单独使用,this 表示全局对象。</li> <li>在函数中,this 表示全局对象。</li> <li>在函数中,在严格模式下,this 是未定义的(undefined)。</li> <li>在事件中,this 表示接收事件的元素。</li> <li>类似 call() 和 apply() 方法可以将 this 引用到任何对象。</li> </ul> <p>方法中的 this<br> 在对象方法中, this 指向调用它所在方法的对象。 下面代码中this指向的是person</p> <pre><code>var person = { firstName: "John", lastName : "Doe", id : 5566, fullName : function() { return this.firstName + " " + this.lastName; } }; </code></pre> <p>单独使用 this<br> 单独使用 this,则它指向全局(Global)对象。<br> 在浏览器中,window 就是该全局对象为 [object Window]:</p> <pre><code><script> var x = this; document.getElementById("demo").innerHTML = x; </script> </code></pre> <p>函数中使用 this(默认)<br> 在函数中,函数的所属者默认绑定到 this 上。<br> 在浏览器中,window 就是该全局对象为 [object Window]:</p> <pre><code><script> document.getElementById("demo").innerHTML = myFunction(); function myFunction() { return this; } </script> </code></pre> <p>函数中使用 this(严格模式)<br> 严格模式下函数是没有绑定到 this 上,这时候 this 是 undefined。</p> <p>事件中的 this<br> 在 HTML 事件句柄中,this 指向了接收事件的 HTML 元素:<br> <code><button onclick="this.style.display='none'">点我后我就消失了</button></code></p> <p>对象方法中绑定<br> this 是 person 对象,person 对象是函数的所有者</p> <p>显式函数绑定<br> 在 JavaScript 中函数也是对象,对象则有方法,apply 和 call 就是函数对象的方法。这两个方法异常强大,他们允许切换函数执行的上下文环境(context),即 this 绑定的对象。<br> 在下面实例中,当我们使用 person2 作为参数来调用 person1.fullName 方法时, this 将指向 person2, 即便它是 person1 的方法:</p> <pre><code>var person1 = { fullName: function() { return this.firstName + " " + this.lastName; } } var person2 = { firstName:"John", lastName: "Doe", } person1.fullName.call(person2); // 返回 "John Doe" </code></pre> <p><strong>JavaScript let 和 const</strong><br> let 声明的变量只在 let 命令所在的代码块内有效。<br> const 声明一个只读的常量,一旦声明,常量的值就不能改变。<br> 函数内使用 var 声明的变量只能在函数内容访问,如果不使用 var 则是全局变量。</p> <p><strong>JavaScript JSON</strong><br> JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)<br> JSON 通常用于服务端向网页传递数据 。</p> <p>JSON 语法规则</p> <ul> <li>数据为 键/值 对。</li> <li>数据由逗号分隔。</li> <li>大括号保存对象</li> <li>方括号保存数组</li> </ul> <p><strong>JSON 字符串转换为 JavaScript 对象</strong><br> 首先,创建 JavaScript 字符串,字符串为 JSON 格式的数据:<br> 然后,使用 JavaScript 内置函数 JSON.parse() 将字符串转换为 JavaScript 对象:</p> <pre><code>var text = '{ "sites" : [' + '{ "name":"Runoob" , "url":"www.runoob.com" },' + '{ "name":"Google" , "url":"www.google.com" },' + '{ "name":"Taobao" , "url":"www.taobao.com" } ]}'; var obj = JSON.parse(text); document.getElementById("demo").innerHTML = obj.sites[1].name + " " + obj.sites[1].url; </code></pre> <p>相关参数<br> JSON.parse() ----> 用于将一个 JSON 字符串转换为 JavaScript 对象。<br> JSON.stringify() ---> 用于将 JavaScript 值转换为 JSON 字符串。</p> <p><strong>javascript:void(0) 含义</strong><br> 该操作符指定要计算一个表达式但是不返回值</p> <p>void()仅仅是代表不返回任何值,但是括号内的表达式还是要运行,如<br> void(alert("Warnning!"))</p> <p><strong>JavaScript 异步编程</strong><br> 异步:异步就是从主线程发射一个子线程来完成任务</p> <p>子线程有一个局限:一旦发射了以后就会与主线程失去同步,我们无法确定它的结束,如果结束之后需要处理一些事情,比如处理来自服务器的信息,我们是无法将它合并到主线程中去的。<br> 为了解决这个问题,JavaScript 中的异步操作函数往往通过回调函数来实现异步任务的结果处理。</p> <p><strong>回调函数</strong><br> 回调函数就是一个函数,它是在我们启动一个异步任务的时候就告诉它:等你完成了这个任务之后要干什么。这样一来主线程几乎不用关心异步任务的状态了,他自己会善始善终。</p> <pre><code>function print() { document.getElementById("demo").innerHTML="RUNOOB!"; } setTimeout(print, 3000); </code></pre> <p>这段程序中的 setTimeout 就是一个消耗时间较长(3 秒)的过程,它的第一个参数是个回调函数,第二个参数是毫秒数,这个函数执行之后会产生一个子线程,子线程会等待 3 秒,然后执行回调函数 "print",在命令行输出 "Time out"。<br> 在 setTimeout 函数执行之后主线程并没有停止</p> <p><strong>异步 AJAX</strong><br> XMLHttpRequest 的 onload 和 onerror 属性都是函数,分别在它请求成功和请求失败时被调用。</p> <p>GET 请求</p> <pre><code>xmlhttp.open("GET","/try/ajax/demo_get.php",true); xmlhttp.send(); </code></pre> <p>在上面的例子中,您可能得到的是缓存的结果。<br> 为了避免这种情况,请向 URL 添加一个唯一的 ID:</p> <pre><code>xmlhttp.open("GET","/try/ajax/demo_get.php?t=" + Math.random(),true); xmlhttp.send(); </code></pre> <p>POST 请求</p> <pre><code>xmlhttp.open("POST","/try/ajax/demo_post.php",true); xmlhttp.send(); </code></pre> <pre><code>xmlhttp.open("POST","/try/ajax/demo_post2.php",true); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xmlhttp.send("fname=Henry&lname=Ford"); </code></pre> <p><strong>JavaScript Promise</strong><br> Promise:目的是更加<strong>优雅地书写复杂的异步任务</strong><br> 构建Promise 对象:</p> <pre><code>new Promise(function (resolve, reject) { // 要做的事情... }); </code></pre> <p>Promise 可以将嵌套格式的代码变成了顺序格式的代码</p> <p><strong>Promise 的使用</strong><br> Promise 构造函数只有一个参数,是一个函数,这个函数在构造之后会直接被异步运行,所以我们称之为起始函数。起始函数包含两个参数 resolve 和 reject。<br> 当 Promise 被构造时,起始函数会被异步执行:</p> <pre><code>new Promise(function (resolve, reject) { console.log("Run"); }); </code></pre> <p>这段程序会直接输出 Run。<br> resolve 和 reject 都是函数,其中调用 resolve 代表一切正常,reject 是出现异常时所调用的</p> <pre><code>new Promise(function (resolve, reject) { var a = 0; var b = 1; if (b == 0) reject("Diveide zero"); else resolve(a / b); }).then(function (value) { console.log("a / b = " + value); }).catch(function (err) { console.log(err); }).finally(function () { console.log("End"); }); </code></pre> <p>Promise 类有 .then() .catch() 和 .finally() 三个方法,这三个方法的参数都是一个函数,.then() 可以将参数中的函数添加到当前 Promise 的正常执行序列,.catch() 则是设定 Promise 的异常处理序列,.finally() 是在 Promise 执行的最后一定会执行的序列。 .then() 传入的函数会按顺序依次执行,有任何异常都会直接跳到 catch 序列:</p> <p><strong>Q: 什么时候适合用 Promise 而不是传统回调函数?</strong><br> A: 当需要<strong>多次顺序执行异步操作</strong>的时候,例如,如果想通过异步方法先后检测用户名和密码,需要先异步检测用户名,然后再异步检测密码的情况下就很适合 Promise。</p> <p><strong>函数表达式</strong></p> <p>JavaScript 函数可以通过一个表达式定义。<br> 函数表达式可以存储在变量中:<br> 以下函数实际上是一个 匿名函数 (函数没有名称)。<br> 函数存储在变量中,不需要函数名称,通常通过变量名来调用。</p> <pre><code>var x = function (a, b) {return a * b}; var z = x(4, 3); </code></pre> <p><strong>arguments 对象</strong><br> JavaScript 函数有个内置的对象 arguments 对象。<br> argument 对象包含了函数调用的参数数组。<br> 通过这种方式你可以很方便的找到最大的一个参数的值</p> <p>在函数中调用的参数是函数的隐式参数。<br> 隐式参数的改变在函数外是不可见的。</p> <p>call() 和 apply() 是预定义的函数方法。 两个方法可用于调用函数,两个方法的第一个参数必须是对象本身。</p> <pre><code><script> var myObject; function myFunction(a, b) { return a * b; } myObject = myFunction.call(myObject, 10, 2); // 返回 20 document.getElementById("demo").innerHTML = myObject; </script> </code></pre> <pre><code><script> var myObject, myArray; function myFunction(a, b) { return a * b; } myArray = [10, 2] myObject = myFunction.apply(myObject, myArray); // 返回 20 document.getElementById("demo").innerHTML = myObject; </script> </code></pre> <p>两个方法都使用了对象本身作为第一个参数。 两者的区别在于第二个参数: apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,而call则作为call的参数传入(从第二个参数开始)。</p> <p><strong>this 笔记</strong><br> this 是 JavaScript 语言的一个关键字。<br> 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如:</p> <pre><code>function test() { this.x = 1; } </code></pre> <p>变量声明时如果不使用 var 关键字,那么它就是一个全局变量,即便它在函数内定义。</p> <p>JavaScript支持嵌套函数,内部函数可以访问父函数的变量。</p> <p><strong>JavaScript 闭包</strong><br> 什么叫闭包,闭包有什么用</p> <pre><code>function aaa() { var a = 5; function bbb() { alert(a) } return bbb } var c = aaa(); c(); </code></pre> <pre><code><script> var add = (function () { var counter = 0; return function () {return counter += 1;} })(); function myFunction(){ document.getElementById("demo").innerHTML = add(); } </script> </code></pre> <p><strong>实例解析</strong><br> 变量 add 指定了函数自我调用的返回字值。<br> 自我调用函数只执行一次。设置计数器为 0。并返回函数表达式。<br> add变量可以作为一个函数使用。非常棒的部分是它可以访问函数上一层作用域的计数器。<br> 这个叫作 JavaScript 闭包。它使得函数拥有私有变量变成可能。<br> 计数器受匿名函数的作用域保护,只能通过 add 方法修改。<br> <code>闭包是一种保护私有变量的机制,在函数执行时形成私有的作用域,保护里面的私有变量不受外界干扰。 直观的说就是形成一个不销毁的栈环境。</code></p> <h3>Vue.js 学习</h3> <p>Vue框架参考了MVVM架构,所以vm扮演一个数据视图的实例。<br> watch('属性',function(newVal,oldVal));会观察实例某个属性,并通过回调获取最新的值、旧值</p> <p>实例生命周期钩子<br> 将实例挂在到DOM,并在数据变化更新DOM。在这个过程中运行 <strong>声明周期钩子</strong>函数,给用户在不同阶段添加自己代码的机会。</p> <p>生命周期函数内不能使用箭头函数<br> 属性函数<br> //页面创建之前<br> beforeCreate</p> <p>//实例创建之后<br> created</p> <p>//挂载之前进行的<br> beforeMount</p> <p>//挂载成功之后<br> mounted</p> <p>//数据变化更新之前调用<br> beforeUpdate</p> <p>//组件 DOM 已经更新,组件更新完毕<br> updated</p> <p>setTimeout(function(),3000),三分钟后执行function</p> <p><strong>模板语法</strong></p> <p>文本插值 {{ }}<br> v-onec执行一次插值<br> v-html 将变量文本输出为真正的HTML<br> v-bind (帮助标签动态绑定属性)</p> <p>v-if 指令 根据表达式的值的真假来判断 元素的执行</p> <h3>Node.js 学习</h3> </article> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1698610799423074304"></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">你可能感兴趣的:(Web学习之开篇)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1947788208997724160.htm" title="机器学习算法之回归算法" target="_blank">机器学习算法之回归算法</a> <span class="text-muted">福葫芦</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/%E5%9B%9E%E5%BD%92/1.htm">回归</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>一、回归算法思维导图二、算法概念、原理、应用场景和实例代码1、线性回归1.1、概念‌‌线性回归算法是一种统计分析方法,用于确定两种或两种以上变量之间的定量关系。‌线性回归算法通过建立线性方程来预测因变量(y)和一个或多个自变量(x)之间的关系。其基本形式为y=wx+e,其中w是权重,x是自变量,e是误差项。1.2、算法原理线性回归算法的核心在于找到最佳的拟合直线,使得预测值与实际值之间的误差最小。</div> </li> <li><a href="/article/1947788113870909440.htm" title="中性笔|小女子一枚" target="_blank">中性笔|小女子一枚</a> <span class="text-muted">Kitekiss</span> <div>女为悦己者容,我对这话的理解就是,要时刻美起来,不为别的,只为自己高兴,哈哈。美有外表之美,亦有内秀之美。外表的美需要禀赋的三分天成,加上后天的七分修饰。哪有那么多禁得住岁月这把杀猪刀雕刻的天生丽质呢?美,也是需要学习和修行的。内秀之美需要书的润色,艺的养成,德的克己,善的加持。却待如何得之?毋须赘言,必要有一颗蓬勃向上的心才行。此画为中性笔人物练习,用时60分钟。画时用眼用手用心,协调一致,能画</div> </li> <li><a href="/article/1947786459977150464.htm" title="大师兄思想|领导者如何做到管理上的“密”?" target="_blank">大师兄思想|领导者如何做到管理上的“密”?</a> <span class="text-muted">大师兄缪玮76</span> <div>要做到管理上的“密”,领导者还需要具备的一个特质——会说话。康熙之四大辅臣,无一不是说话的高手。以鳌拜为例,鳌拜与大臣们讨论圈地时,先是以劝说大家收敛切入,引出大臣们心中的不满和逆反心理,他的每一句话,都环环相扣,很好地利用圈地将大臣们捆绑在一起,虽然没有人愿意为了他去造反,但所有人都愿意为了自己的利益去努力。最终让他们“同进同退,生死与共”地支持自己。而且,重要的是,鳌拜圈地并不是为了赚钱,他是</div> </li> <li><a href="/article/1947785187471454208.htm" title="【孟母堂】与文玲听的歌曲" target="_blank">【孟母堂】与文玲听的歌曲</a> <span class="text-muted">每个人的孟母堂</span> <div>朋友追梦人橄榄树在那遥远的地方我和草原有个约定草原之夜蒙古人美丽的草原我的家爱的哈达鸿雁梦中的额吉吉祥三宝北方的狼梦醒时分恋曲1980知心爱人英雄泪小芳九妹康定情歌朋友二十年后再相会万山之巅500miles在水一方我只在乎你心雨千纸鹤窗外嘎达梅林成都歌唱祖国大海红军不怕远征难青青河边草yesterdayOnceMore走过咖啡屋问一阵恼人的秋风排球女将成吉思汗风中有朵雨做的云像雾像雨又像风在希望的</div> </li> <li><a href="/article/1947784045840625664.htm" title="Spark RDD 之 Partition" target="_blank">Spark RDD 之 Partition</a> <span class="text-muted">博弈史密斯</span> <div>SparkRDD怎么理解RDD的粗粒度模式?对比细粒度模式SparkRDD的task数量是由什么决定的?一份待处理的原始数据会被按照相应的逻辑(例如jdbc和hdfs的split逻辑)切分成n份,每份数据对应到RDD中的一个Partition,Partition的数量决定了task的数量,影响着程序的并行度支持保存点(checkpoint)虽然RDD可以通过lineage实现faultrecove</div> </li> <li><a href="/article/1947780738204102656.htm" title="《孟子》感言集之220: 当务之急" target="_blank">《孟子》感言集之220: 当务之急</a> <span class="text-muted">余超林AIA财富管家</span> <div>图片发自App早起,高声朗诵《孟子.尽心章句上下》,其中对于“当务之急”颇有感触:顾名思义,当务之急,就是眼前最急迫最重要的是什么?我们的首要任务是什么?什么事一定要首先解决!当务之急属于即重要又紧急,这件事情不做好,其他事情没有办法开展。当务之急成了现代人常用口语。孟子提出这个概念的本来含义就是:告诉世人,做任何事情都是有一个先后次序,有些事可以慢点做,有些事情非常急迫,必须首先做。因为人的精力</div> </li> <li><a href="/article/1947776031901413376.htm" title="从《乌合之众》看“饭圈化”乱像" target="_blank">从《乌合之众》看“饭圈化”乱像</a> <span class="text-muted">19级覃钰茗</span> <div>勒庞说:群体只会干两种事——锦上添花或落井下石。在如QQ,微信,微博类的社交络上,我明确了解并且知道网民想法千奇百怪,每次热点出现,网民们激烈的讨论,每次出了事以后,无端的谩骂,无尽的狂热的追捧也让我不寒而栗。按勒庞的说法来说,我们都是“乌合之众”,我们聚成团,在网络这个平台上发声。在书中,勒庞以“群体的时代”为导言标题,讲明了人类文明社会的本质存在形式。约翰·多恩曾说过“没有人是一座孤岛”,即每</div> </li> <li><a href="/article/1947775900909105152.htm" title="是应该忍一时之气还是应该潇洒离开?" target="_blank">是应该忍一时之气还是应该潇洒离开?</a> <span class="text-muted">轻嗅荷香</span> <div>图片发自App在激烈的社会竞争中,我们也许想着在实践中锻炼自己的能力,希望通过工作来积累经验,从而维持生计、养家糊口。然而,找到一份适合自己的工作却难如登天。对于初入职场的新人来说,他们往往是同事中最容易受到老板批评的对象。也许是因为刚入职场,业务不熟悉而容易出错或业绩低下,也许是因为上级领导心中烦躁而令其无辜躺枪……当这种情况发生时,我们难免会产生激烈的情绪波动。要么是觉得老板咄咄逼人、尖酸刻薄</div> </li> <li><a href="/article/1947774890379636736.htm" title="《八角笼中》:王宝强有野心,但差点意思!" target="_blank">《八角笼中》:王宝强有野心,但差点意思!</a> <span class="text-muted">小司淘电影</span> <div>周末看了王宝强的新片《八角笼中》的电影,来聊聊我的感受。真诚永远是必杀技!举办了9届的“金扫帚”奖,娱乐圈人人都避之不及,只有他在犹豫一整晚之后,做了那个勇敢上台领“奖”的新人导演。那一年2017年,王宝强带着自己的处女作《大闹天竺》豆瓣3.7分,获得了第九届“金扫帚”最令人失望导演奖。那一次,王宝强站上领奖台,对着观众鞠躬,诚恳道歉:“虽然它不是个光彩的奖项,但可以鞭策人进步。我来领奖是因为我爱</div> </li> <li><a href="/article/1947774509008351232.htm" title="2023-05-20" target="_blank">2023-05-20</a> <span class="text-muted">手抖小知识白洋</span> <div>耳鸣五大情况吗????耳鸣为与心跳一致的飕飕声、嘀嗒声或轻叩声,用听诊器置于患者颞部或耳部,常可以听到这种搏动性耳鸣和非搏动性耳鸣较为常见,是一种连续而稳定的噪音,如病者所描述之嗡嗡声、蟋蟀声、钟声或摩托声。证明耳鸣存在的五大症状1、神经衰弱耳鸣还与社会环境、心理因素有关。当人的情绪忧郁、焦虑不安时,也可出现耳鸣的症状。这种耳鸣音调高低不定,多为双侧性,并伴有头痛、失眠、多梦等症状。另外,身体虚弱</div> </li> <li><a href="/article/1947772211884519424.htm" title="《唤醒老虎——启动自我疗愈本能。全书读书总结(君子成人之美——成成)" target="_blank">《唤醒老虎——启动自我疗愈本能。全书读书总结(君子成人之美——成成)</a> <span class="text-muted">大道之心</span> <div>经过20多天的阅读。终于把《唤醒老虎启动自我疗愈本能》这本书读完了。昨天晚上举行了结营典礼。只是网络结营典礼,但我还是觉得有很重的仪式感。让人意外的是,我和我的搭档居然还获得了将金50元,实在是意外之喜。回顾这20多天的历程。从开始的认真看书,认真写读书笔记。到后来的有些懒散,敷衍。其实我自己都为自己捏了把汗。中间出了一个状况,就是我居然读着读着,把书给弄丢了。全靠着电子书和喜马拉雅听书啃完了中间</div> </li> <li><a href="/article/1947766876331372544.htm" title="大胆向前" target="_blank">大胆向前</a> <span class="text-muted">吃不到的蛋挞</span> <div>且视他人之疑目如盏盏鬼火,大胆去走你的夜路--史铁生千万不要看见别人发光就觉得自己暗淡他强任他强清风拂山岗生活中人和人的节奏不一样有人三分钟泡面有人三小时煲汤你选择了你要的方式就坚定走下去别胡思乱想每个人的花期不一样不必焦虑有人比你提前拥有所以别碰到一点压力就把自己变成不堪重负的样子成功之前你这辈子该走的弯路该吃的苦该撞的南墙该掉的陷阱一个都少不了考差了可以再努力钱没了可以再挣工作没了可以再找朋友</div> </li> <li><a href="/article/1947766746714796032.htm" title="《世法哲言》 (十三)" target="_blank">《世法哲言》 (十三)</a> <span class="text-muted">生命在一呼一吸之间</span> <div>南无羌佛说《世法哲言》(十三)『凡事应三思之弗觉,体实而再行之,不可闻言而从,亦不可听之否虚,三思之下实施无道者,当进而穷根之研,欲觅高天彩虹而遇乌云之布,则疑于霞辉之弗成也,是为过失。』古人有「三思而行,再思可矣」之说,实际上,光「三思而行,再思可矣」是不够的,在三思之后,还要具体去实践以观察真实效果,这也就是说,我们绝不可以听说一件事情就立刻不加思索地去办,而必须要加以认真思考和实践,但同时,</div> </li> <li><a href="/article/1947765852992499712.htm" title="水彩私享课之香蕉" target="_blank">水彩私享课之香蕉</a> <span class="text-muted">鱼的微记忆</span> <div>1、线稿线条尽量简洁,减少不必要的线条,笔触要轻。2、调浅柠檬黄先画出底色。3、橘黄色加赭石,画出香蕉的深色部分和阴影。注意留出香蕉的亮部。4、继续深入刻画香蕉头部加入一点黄绿色,增加颜色的丰富度。继续加深暗部的颜色,拉开明暗对比关系。5、最后,画出香蕉身上的伤痕,完成。</div> </li> <li><a href="/article/1947764964517277696.htm" title="泥灸,就是这么给力!" target="_blank">泥灸,就是这么给力!</a> <span class="text-muted">中医泥灸</span> <div>泥灸到底有多神奇?图片发自App泥灸可拔出你身体里面的寒湿,毒素,可以快速渗透到皮下6-7cm,药性直达病灶,有效调理慢性病症;泥灸中含有矿物泥,火山能量石,微量元素硒元素,可以有效的防癌抗癌;泥灸可代替抗生素消炎药,药性透皮吸收后可有效的消炎、杀菌、杀死癌细胞,百分百提高免疫力;泥灸是属阳之物,有效补充阳气,扶阳固本;泥灸可温养经络,祛湿散寒,调和气血;泥灸可活血化瘀,消炎止痛,排湿气,排寒气,</div> </li> <li><a href="/article/1947762924261011456.htm" title="part1" target="_blank">part1</a> <span class="text-muted">907762d26688</span> <div>从本单元中学到的重要理念:视听说:产生情绪的原因和好坏精读:对自己的财产进行合理规划,适度消费理性消费本周怦然心动的单词:视听说:solicitor初级律师billow滚滚移动之物gossamer薄纱精读:notorious臭名昭著的impulse冲动misspend浪费prewar战前的我最喜欢的一句视听说:TrytostartorendtheconversationWithsomethingp</div> </li> <li><a href="/article/1947762920431611904.htm" title="人淡如菊的妹妹最爱慷他人之慨(盛长歌盛楚楚)免费小说全本_完结免费小说人淡如菊的妹妹最爱慷他人之慨(盛长歌盛楚楚)" target="_blank">人淡如菊的妹妹最爱慷他人之慨(盛长歌盛楚楚)免费小说全本_完结免费小说人淡如菊的妹妹最爱慷他人之慨(盛长歌盛楚楚)</a> <span class="text-muted">喵喵美文</span> <div>《人淡如菊的妹妹最爱慷他人之慨》主角:盛长歌盛楚楚简介:我妹妹人淡如菊,不争不抢。选秀综艺,我为自己和妹妹争取机会,主动表现,赢得导师青睐,妹妹却说我们的中国舞一般,导师应该把机会让给更合适的人。为了更好的舞台效果,我熬夜设计服装和妆面,妹妹却说要分享趁我不注意将我的设计稿无偿分享给了其它学员。为了成团我埋头苦练,最终我带着她成功挤入出道位,妹妹却临时放弃,她淡然说,我们应该把位置让给更需要的人。</div> </li> <li><a href="/article/1947761866574983168.htm" title="浅析Vue3(vue3笔记之进阶篇)" target="_blank">浅析Vue3(vue3笔记之进阶篇)</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/vue/1.htm">vue</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</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><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%A1%86%E6%9E%B6/1.htm">前端框架</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a> <div>本文是结合实践中和学习技术文章总结出来的笔记(个人使用),如有雷同纯属正常((✿◠‿◠))喜欢的话点个赞,谢谢!有问题欢迎指正!!前面已经讲了基本的Vue生命周期和入门知识,本篇重点介绍Vue3的一些进阶知识1.vue-router路由Vue的路由对比React真是舒服太多了,路由守卫不需要自己配置,还可以方便自己添加一些自定义逻辑,比如在beforeEach加载进度条之类的,这里以Hash路由为</div> </li> <li><a href="/article/1947758078707429376.htm" title="【K8s】专题四(4):Kubernetes 控制器之 StatefulSet" target="_blank">【K8s】专题四(4):Kubernetes 控制器之 StatefulSet</a> <span class="text-muted"></span> <div>本文内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发、订阅专栏!专栏订阅入口Linux专栏|Docker专栏|Kubernetes专栏往期精彩文章【Docker】(全网首发)KylinV10下MySQL容器内存占用异常的解决方法【Docker】(全网首发)KylinV10下MySQL容器内存占用异常的解决方法(续)【Docker】MySQL源码构建Docker镜</div> </li> <li><a href="/article/1947757464426442752.htm" title="开学第一课之培训 ——所思,所学,所感" target="_blank">开学第一课之培训 ——所思,所学,所感</a> <span class="text-muted">藝W</span> <div>孔子曰:“学而不已,阖棺为止。”工作五年后,在孩子两岁的时,我重新步入学校攻读教育硕士,开启了我对教育事业的新认识。作为一线教师,我体会到仅靠学科知识是支撑不了永久的讲台;作为母亲,我也感受到新时代的家庭教育的重要。国家倡导“全民学习、终身学习”,长期坚守在一线的教师,怎能不学习,学习和阅读乃是我们的精神食粮。加入新网师源于朋友的邀约,我所工作的学校给年轻教师的培训机会很少,很高兴有这次机会能进入</div> </li> <li><a href="/article/1947756322862723072.htm" title="590《手指》教材分析(三)" target="_blank">590《手指》教材分析(三)</a> <span class="text-muted">李丹720</span> <div>文本内容解析1.课文内容分析《手指》是丰子恺先生的一篇散文。文章生动地刻画了五个鲜明的手指形象,令读者联想到生活中类似的人,进而懂得“团结才有力量”的道理。手指本是寻常之物,作者却用风趣幽默的语言和拟人化的手法,把它们写得灵动鲜活,富有生趣。课文内容结构第一部分,第1自然段:总起全文,开门见山,指出每个人都有十根手指,一只手上的五根手指各有所长、各有所短。第二部分,第2-5自然段:具体描写了五根手</div> </li> <li><a href="/article/1947749887202357248.htm" title="记一次解题经历-中断和锁的应用实例" target="_blank">记一次解题经历-中断和锁的应用实例</a> <span class="text-muted">折木H.O.</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>中断和锁的应用实例之自己挖的坑自己填:)题目:请指出如下代码缺陷在哪?前提条件:foo1有可能在进程上下文或中断上下文执行,且假设执行该函数之前没有关闭中断。funcfoo1(void){raw_spin_lock(&lock);/*被保护临界区*/raw_spin_unlock(&lock);}foo2是timercallback,如下:funcfoo2(void){raw_spin_lock(</div> </li> <li><a href="/article/1947748452557451264.htm" title="《稻盛和夫活法》——《第四章 以利他心度人生之参与新事业的动机每晚自问自答》第五十四天" target="_blank">《稻盛和夫活法》——《第四章 以利他心度人生之参与新事业的动机每晚自问自答》第五十四天</a> <span class="text-muted">一棵开花的树_a563</span> <div>“利他这一项“德行”是击破困难、召唤成功的强大原动力,在参与通信事业时,我对此有深切的体会。反复这样的自问自答,就是说,是不是“动机至善、私心了无——一次又一次,我不断扪心自问,借以审视自己动机的真假善恶。”利他、无私心,动机至纯,才能成就一番事业!</div> </li> <li><a href="/article/1947746105185857536.htm" title="计算机视觉:打开机器之眼看世界" target="_blank">计算机视觉:打开机器之眼看世界</a> <span class="text-muted">LeafyJee_</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/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/1.htm">计算机视觉</a> <div>计算机视觉是人工智能领域中备受关注的一部分,它的目标是赋予计算机类似于人类眼睛的功能,让机器能够感知和理解周围的世界。通过图像和视频数据,计算机视觉技术将信息转化为可理解和可操作的数据,为各种应用领域提供了强大的支持。一、计算机视觉的起源和发展计算机视觉起源于20世纪50年代,当时科学家们开始研究如何让计算机能够识别和理解图像。随着技术的不断进步,计算机视觉逐渐发展成为一门独立的学科,并广泛应用于</div> </li> <li><a href="/article/1947740811080822784.htm" title="星期三" target="_blank">星期三</a> <span class="text-muted">最怜天上月q</span> <div>20190605星期三图片发自App图片发自App图片发自App图片发自App图片发自App图片发自App图片发自App1.他欣赏我的智力与才干,却不懂我的心,殊不知我的心是我唯一的骄傲,惟独它是一切的源泉,一切力量,一切福祉,一切不幸的源泉。唉,我能有的知识,人人都能有;而我的心则惟我独有。——歌德《少年维特之烦恼》2.风度是理想的形态,容止则是理想的动态。——雨果《悲惨世界》3.孤独和爱是互为</div> </li> <li><a href="/article/1947740681455857664.htm" title="中国传统节日中秋节吃什么?中秋节必吃的美食" target="_blank">中国传统节日中秋节吃什么?中秋节必吃的美食</a> <span class="text-muted">好项目高省</span> <div>中秋节是一个充满诗意和温情的节日,不仅有赏月、团聚等活动,还有与之相关的丰富传统食物和习俗。一、传统食物月饼:作为中秋节的象征,月饼有各种口味和花样,是必不可少的美食。一家人围坐在一起,分享月饼,象征着团圆和美满。桂花酒:芬芳的桂花酿成的美酒,给节日增添了一份浪漫。在中秋佳节,与家人一起品尝桂花酒,感受那份独特的香气和醇厚的口感。田螺:中秋时节田螺正肥,是很多地方的传统佳肴。人们品尝田螺,不仅是为</div> </li> <li><a href="/article/1947740045876195328.htm" title="艺术里的中国——「人民艺术家」周绪和" target="_blank">艺术里的中国——「人民艺术家」周绪和</a> <span class="text-muted">中华翰墨</span> <div>文化是一个国家、一个民族的灵魂。文化兴国运兴,文化强民族强。文化更是一个民族的脊梁和灵魂,它铸造着国家和民族的心灵和品格,一个民族有了文化自信,才能立于世界民族之林。人民有了信仰,国家才有力量,民族才有希望。而文化自信是促成这些目标的至关重要的因素。在这个时代,涌现了许许多多富有时代气息、个人风格鲜明的艺术家。他们具有超高的艺术造诣和崇高的思想道德品质,且全心全力拥党爱民。他们以传承与发展中华优秀</div> </li> <li><a href="/article/1947737258224316416.htm" title="你对我好,我会忘不了" target="_blank">你对我好,我会忘不了</a> <span class="text-muted">透明色的杨洋</span> <div>我和老婆结婚已经八年了,已经过了七年之痒的阶段,在这个浮躁的社会不吵不闹安安稳稳度过八年的夫妻也许有,但我们绝对不是;小打小闹的这些年让我们更加了解彼此,也认清了对方是自己值得相守一生的人。而今天要说的故事主人公并没有我,而是我老婆和她的闺蜜。老婆在一家电子厂上班,至今也算是老员工了,电子厂大部分女员工居多,都说女人跟女人之间的友谊单纯起来就如同一场青春校园电影,复杂起来也是一部清庭宫斗剧,作为直</div> </li> <li><a href="/article/1947736752257036288.htm" title="《都市不俗人》:之439 言传不如身教,听道不如悟到" target="_blank">《都市不俗人》:之439 言传不如身教,听道不如悟到</a> <span class="text-muted">古韵撷趣</span> <div>上篇说到,胡姣和曾明在一起倾心交流,人与人之间相处的感受,在谈及之前最难相处的柏桦时,曾明一度崩溃的心态也惊呆了胡姣。在胡姣心里,原以为最容易相处的赵武,也被曾明否认时,胡姣就更为惊讶了,胡姣很是期待曾明的下文了。曾明继续解释说:好在我与赵武多年的兄弟情义,他对我的信任和些许崇拜,让他大多数的时候,还能对我言听计从。但沟通的过程,并非想象的那么简单,知识层面的差距,有时候还真的有点费劲,讲历史、讲</div> </li> <li><a href="/article/1947732685195636736.htm" title="《昆虫记》读后感" target="_blank">《昆虫记》读后感</a> <span class="text-muted">刘耀文圈外正版女友</span> <div>第十四章采棉蜂和采脂蜂我们知道,有许多蜜蜂像樵叶蜂一样自己不会筑巢,只会借居别的动物遗留或抛弃的巢作自己的栖身之所。有的蜜蜂会借居泥匠蜂的故居,有的会借居于蚯蚓的地道中或蜗牛的空壳里,有的会占据矿蜂曾经盘踞过的树枝,还有的会搬进掘地蜂曾经居住过的砂坑。第十五章西班牙犀头的自制我希望你还记得神圣甲虫,它消耗掉它的时间,做成即可以当食物,又可以当梨形窝巢的基础的圆球。我已经指出,这种形状对于小甲虫的利</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>