前端
文章平均质量分 93
技术闲聊DD
代码改变生活,程序改变世界!
展开
-
如何管理多个版本的Node.js
首先,Node.js支持多版本共存,nvm是一个跨平台的命令行工具,可以在Mac、Linux、Windows等各种操作系统上使用。nvm下载地址:https://github.com/coreybutler/nvm-windows/进入之后在右边选择合适的版本下载:一般就选择.exe和.zip下载,我是下载的.exe版本然后安装。注意:如果选择的.exe版本,在安装时会让选择目前你电脑上Node.js的安装路径,这样安装nvm之后你电脑上的Node.js版本就被nvm管理了。原创 2024-05-15 06:58:34 · 657 阅读 · 0 评论 -
CSS学习(3)-浮动和定位
可以使用 left 、 right 、 top 、 bottom 四个属性调整位置,不过最常用的是 top 值。对兄弟元素的影响: 后面的兄弟元素,会占据浮动元素之前的位置,在浮动元素的下面;对前面的兄弟无影响。对父元素的影响: 不能撑起父元素的高度,导致父元素高度塌陷;粘性定位和相对定位的特点基本一致,不同的是:粘性定位可以在元素到达某个位置时将其固定。离它最近的一个拥有“滚动机制”的祖先元素,即便这个祖先不是最近的真实可滚动祖先。布局中的一个原则:设置浮动的时候,兄弟元素要么全都浮动,要么全都不浮动。原创 2024-03-16 21:05:37 · 959 阅读 · 0 评论 -
CSS学习(2)-盒子模型
第一个子元素的上 margin 会作用在父元素上,最后一个子元素的下 margin 会作用在父元素上。原创 2024-03-16 14:12:39 · 1002 阅读 · 0 评论 -
CSS学习(1)-选择器
作用:选中同时符合多个条件的元素。选择器1选择器2选择器3...选择器n {}/* 选中:类名为beauty的p元素,为此种写法用的非常多!!!!*/p.beauty {/* 选中:类名包含rich和beauty的元素 */有标签名,标签名必须写在前面。id 选择器、通配选择器,理论上可以作为交集的条件,但实际应用中几乎不用 —— 因为没有意义。交集选择器中不可能出现两个元素选择器,因为一个元素,不可能即是 p 元素又是 span 元素。元素选择器配合类名选择器。原创 2024-03-16 13:35:15 · 1080 阅读 · 0 评论 -
vue.js(8)-列表渲染
用v-for把一个数组对应为一组元素我们用 v-for 指令根据一组数组的选项列表进行渲染。v-for 指令需要使用 item in items 形式的特殊语法,items 是源数据数组并且 item 是数组元素迭代的别名。 案例1:<ul id="example-1"> <li v-for="item in items"> {{ item.message }} </li></u原创 2017-12-28 17:02:19 · 676 阅读 · 0 评论 -
vue.js(9)-事件处理
监听事件可以用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码。 示例:<div id="example-1"> <button v-on:click="counter += 1">Add 1</button> <p>The button above has been clicked {{ counter }} times.</p></div>var原创 2017-12-29 18:31:46 · 677 阅读 · 0 评论 -
Redis(5)--Redis的数据结构之字符串
五种数据类型: 字符串(String) 字符串列表(list) 有序字符串集合(sorted set) 哈希(hash) 字符串集合(set) Key定义的注意点: 不要过长, 不要过短, 统一的命名规范 存储String 二进制安全的,存入和获取的数据相同,Value最多可以容纳的数据长度是512M。 存储String常用命令 赋值,取值,删除,数值增减,扩展命令案例演示原创 2018-03-15 12:00:07 · 218 阅读 · 0 评论 -
Velocity学习(1)--hello world
主要内容: (1)velocity的介绍 (2)Servlet+velocity 环境搭建和 Demo1 velocity的介绍velocity 是 apache 开发的一个基于 Java 的模板引擎,通过 velocity 特定的语法 VTL,能够在一段文本(模板)中引用 Java 对象的属性,以达到模板+数据模型(Java 对象)生成特定文本的目的。将模板引擎用于 web 开发,能够实现 J原创 2018-04-27 23:08:04 · 222 阅读 · 0 评论 -
velocity学习(2)--VTL 语法
注释单行注释为 ##,多行注释为#* *#,被注释的内容不会被模板引擎解析,文档注释是:如下:#***@author xxx*@version 5*#变量、属性、方法的引用VTL 可以对变量、属性、方法进行引用。显示输出一个变量时,输出它的 toString 方法。这和 System.out.print()类似。输出一个属性时,该属性必须是可访问的,或者其 get 方法是可访问的,引用一个方法原创 2018-04-29 16:10:04 · 745 阅读 · 0 评论 -
velocity学习(3)--velocity.properties 配置文件
velocity.properties 配置文件apache 在 velocity-1.7.jar 的 org.apache.velocity.runtime.defaults 下提供了一个默认的配置文件 velocity.properties,同目录下的 directive.properties 定义的是 velocity 的常用指令(#set 等),我们可以打开观看其具体实现,这里不多做解释。在原创 2018-04-29 16:40:34 · 3713 阅读 · 0 评论 -
velocity学习(4)--toolbox.xml 工具箱
toolbox.xml 工具箱velocity-tools 提供了很多实用的 Java 类,使用这些小工具前,需要在 web.xml 中配置 toolbox.xml 文件,在 VelocityViewServlet 后加入另一个参数:<init-param><param-name>org.apache.velocity.toolbox</param-name><param-value>/WEB-转载 2018-04-29 17:46:06 · 3343 阅读 · 0 评论 -
Lua 学习(1)--Lua 简介
Lua简介Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua 特性轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。 可扩展: Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就原创 2018-04-29 20:47:37 · 152 阅读 · 0 评论 -
vue.js(7)-条件渲染
v-if在字符串模板中,比如 Handlebars,我们得像这样写一个条件块:{{#if ok}} h1>Yesh1>{{/if}}在 Vue 中,我们使用 v-if 指令实现同样的功能:原创 2017-12-27 22:05:37 · 209 阅读 · 0 评论 -
vue.js(6)-Class 与 Style 绑定
绑定 HTML Class操作元素的 class 列表和内联样式是数据绑定的一个常见需求。因为它们都是属性,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可。不过,字符串拼接麻烦且易错。因此,在将 v-bind 用于 class 和 style 时,Vue.js 做了专门的增强。表达式结果的类型除了字符串之外,还可以是对象或数组。对象语法我们可以传给 v-bind:cla原创 2017-12-27 14:01:41 · 225 阅读 · 0 评论 -
vue.js学习之组件(上篇)
组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能。在有些情况下,组件也可以是原生 HTML 元素的形式,以 is 特性扩展。一、组件的创建与注册1、全局组件组件的使用有两个步骤:注册组件 和 使用组件。(1)要注册一个全局组转载 2018-01-03 15:17:35 · 421 阅读 · 0 评论 -
JS正则表达式(1)
正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。-或- 对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*"。 ^ 匹配一个输入或一行的开头,/^a/匹配"an A原创 2017-10-18 10:44:26 · 298 阅读 · 0 评论 -
爬虫技术(01)神箭手爬虫初学案例解读
var configs = { //要爬取的域名 domains: ["leiphone.com"], //爬虫的入口URL scanUrls: ["http://www.leiphone.com/search?s=vr&site=article"], //内容页url正则 /* 解读下面正则: http://www.leipho原创 2017-10-18 11:57:41 · 1006 阅读 · 0 评论 -
爬虫技术(03)神箭手爬虫Configs详解
(1)domains定义神箭手应用爬取哪些域名下的网页, 非域名下的网页会被忽略以提高爬取速度。 **数组类型 在神箭手应用的代码中均可使用**通用栗子1:var configs = { // 单个域名 domains: ["wallstreetcn.com"], // configs的其他成员 ...};通用栗子2:var configs = { //原创 2017-10-18 14:39:29 · 1420 阅读 · 0 评论 -
爬虫技术(02)神箭手爬虫实时API
var scanUrl = "http://www.leiphone.com/news/201610/9EbxjV73a9kGhN3a.html";//@input(scanUrl, 文章url, 请输入正确的url)var configs = { domains: ["leiphone.com"], scanUrls: [scanUrl], fields: [原创 2017-10-18 14:44:41 · 1394 阅读 · 0 评论 -
爬虫技术(04)神箭手爬虫field的属性
**field定义一个从内容页中抽取数据的抽取项. 如果根据抽取规则没有从内容页中抽取到数据, field的值是null.**一个抽取项包含下面这些信息:(1) name1). 给抽取项起个名字 2). 名字中不能包含. **String类型 在神箭手应用的代码中均可使用**通用栗子:给抽取项起个名字叫questionvar configs = { // configs的其他成员原创 2017-10-18 15:34:09 · 1344 阅读 · 0 评论 -
爬虫技术(05)神箭手爬虫回调函数
回调函数是在神箭手应用爬取并处理网页的过程中设置的一些系统钩子, 通过这些钩子可以完成一些特殊的处理逻辑.回调函数需要设置到configs对象中才起作用 下图是采集爬虫爬取并处理网页的流程图, 矩形方框中标识了采集爬虫运行过程中所使用的重要回调函数: (1)beforeCrawl(site)神箭手应用初始化时调用, 用来进行一些爬取前的操作, 栗如, 给所有HTTP请求添加Headers等@pa原创 2017-10-18 16:13:15 · 1483 阅读 · 0 评论 -
优秀的前端框架总结
1 bootstrap 学习网站 bootstrap中文网 http://www.bootcss.com/ 2 layui 学习网站 官网 http://www.layui.com/原创 2017-10-27 10:26:38 · 541 阅读 · 0 评论 -
vue.js(5)-计算属性和观察者
计算属性1 产生背景 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护。例如:<div id="example"> {{ message.split('').reverse().join('') }}</div>在这个地方,模板不再是简单的声明式逻辑。你必须看一段时间才能意识到,这里是想要显示变量 message 的翻转字符串。当你想要原创 2017-12-25 18:45:01 · 231 阅读 · 0 评论 -
JS中点击事件冒泡解析
关于Javascript中的点击事件冒泡的问题,很多初学者都处理不好。什么是点击事件冒泡?例:今天我去小明家找他玩。正好小明、小明的爸爸、小明的爷爷在客厅一起看电视。我对小明说:”咱们出去玩吧“。小明十分乐意的回答到:”好啊“。小明的爸爸听到后,说到:”把作业写完后在出去玩“。小明的爷爷也发话了:”预报有雷阵雨,就别出去玩了“。我本来只是询问一下小明的意见,结果他爸比和爷爷对我说的话做出的反应影响到转载 2017-12-18 13:11:46 · 1344 阅读 · 0 评论 -
vue.js(10)-表单输入绑定
基础用法你可以用 v-model 指令在表单 及 元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇,但 v-model 本质上不过是语法糖。它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。 注意: (1) v-model 会忽略所有表单元素的 value、checked、selected 特性的初始值而总是将 Vue 实例的数原创 2018-01-02 14:32:10 · 962 阅读 · 0 评论 -
Vue.js说说组件
什么是组件:组件是Vue.js最强大的功能之一。组件可以扩展HTML元素,封装可重用的代码。在较高层面上,组件是自定义的元素,Vue.js的编译器为它添加特殊功能。在有些情况下,组件也可以是原生HTML元素的形式,以is特性扩展。如何注册组件?需要使用Vue.extend方法创建一个组件,然后使用Vue.component方法注册组件。Vue.extend方法格式如下:var MyComponent转载 2018-01-03 14:43:45 · 297 阅读 · 0 评论 -
java web 的jsp中的${pageContext.request.contextPath }解读
优点: 它的作用是取出部署应用程序的名字,这样不管如何部署,所用的路径都是正确的缺点:其他工具无法正确解析它什么是当前的项目名称呢? 假定你的web application 名称为test,这个test就是当前的项目名称,不过你在浏览器中输入请求路径时,如: http//:localhost:8080/test/hello.jsp ${pageConte转载 2017-09-21 15:52:54 · 538 阅读 · 0 评论