喔喔屋

断剑重铸之日


  • 首页

  • 标签

  • 分类

  • 归档

http需要知道的状态码

发表于 2018-12-23 | 分类于 http
字数统计: 234 | 阅读时长 ≈ 1

记录常用的http状态码

200: 请求成功,返回响应内容;204: 请求成功,但是没有内容返回; 206(范围请求): 请求成功,返回请求的部分内容。

301: 资源永久性重定向;302: 资源临时性重定向;303;资源有两个访问url,应当使用get方法定向请求该资源;304: 客户端请求带条件,服务器资源已找到,但是没有满足条件;307:临时重定向,与302不同的是302可以禁止把post变为get,但是大家都不遵守,307是强制不能把post转为get.

400: 请求报文中存在语法错误; 401: 发送的请求需要通过http认证; 403: 发送的请求被服务端拒绝了; 404(not found):请求的资源服务端没有找到.

500: 服务器内部发生错误; 503: 服务器忙或者正在维护,现在无法处理请求;

css选择器问题

发表于 2018-12-23 | 分类于 CSS
字数统计: 243 | 阅读时长 ≈ 1

开发中经常遇到css样式覆盖的问题,在此记录一下css样式的优先规则

选择器通常包括

类型选择器(元素选择器: p、h1) 后代选择器(p span ) 类选择器(.class) ID选择器(#ID) 通用选择器 * (匹配所有)

高级选择器:

  1. 子选择器 div >p 匹配div下第一层p标签 可以通过通配符完成子选择器

  2. 相邻同胞选择器 + 匹配一个元素的下一个元素

  3. 属性选择器 img[title] 匹配有该属性的元素

层叠重要度次序 : 标有 !important 的用户样式 > 标有 !important 的作者样式 > 作者样式 > 用户样式 > 浏览器/用户代理的样式

通用选择器(*) < 伪元素、元素(类型)选择器 < 类选择器 = 属性选择器 = 伪类 < ID 选择器 < 内联样式
规则相同 则后定义或者更加具体的优先

js事件冒泡与捕获

发表于 2018-12-23 | 分类于 JavaScript
字数统计: 342 | 阅读时长 ≈ 1

准备这样一个页面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#grandpa {
margin: 0 auto;
height: 600px;
width: 600px;
background: red;
}

#father {
height: 400px;
width: 400px;
background: blue;
}

#children {
height: 200px;
width: 200px;
background: green;
}

1
2
3
4
5
<div id="grandpa">
<div id="father">
<div id="children"></div>
</div>
</div>
1
2
3
4
5
6
7
8
9
document.getElementById('grandpa').addEventListener('click', function () {
console.log('点击了爷爷')
},)
document.getElementById('father').addEventListener('click', function () {
console.log('点击了爸爸')
},)
document.getElementById('children').addEventListener('click', function () {
console.log('点击了儿子')
},)

页面如下
a
当我们点击’儿子’时,监听的事件会由内到外依次触发,因为儿子包含在爸爸,爷爷身上,这就是js默认事件冒泡。就近原则,依次触发。
b
利用api把添加监听事件的第三个参数改为true时

1
2
3
document.getElementById('grandpa').addEventListener('click', function () {
console.log('点击了爷爷')
},true)

会出现‘爷爷’先打印,这就是事件捕获,阻止冒泡,当然打印‘儿子’‘爸爸’顺序没变,因为还是默认的冒泡
b

还有些SB会写出一个div里同时存在冒泡和捕获事件,这种情况就是先写的事件先执行,先来后到。
写遮罩弹窗时应用到了,在此记录一下。别个说和事件委托联系很深,下次再研究。

js事件委托

发表于 2018-12-23 | 分类于 JavaScript
字数统计: 334 | 阅读时长 ≈ 1

当我们有这样一个列表

1
2
3
4
5
<ul id="list">
<li id="list_1">列表1</li>
<li id="list_2">列表2</li>
<li id="list_3">列表3</li>
</ul>

a
现在给每个列增加点击事件用于业务需求,可能会这样写

1
2
3
4
5
6
7
8
9
document.getElementById('list_1').addEventListener('click', function () {
console.log('点击了列表1')
})
document.getElementById('list_2').addEventListener('click', function () {
console.log('点击了列表2')
})
document.getElementById('list_3').addEventListener('click', function () {
console.log('点击了列表3')
})

b
缺点是随着列表的增多,事件监听会越来越多,会影响性能。
这时事件委托就派上用场了,事件委托主要是利用事件冒泡,通过只监听li的父元素ul,通过事件属性的不同写逻辑判断调用哪个业务方法,减少的监听事件,提升性能。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
document.getElementById('list').addEventListener('click', function (e) {
console.log(e)
switch (e.target.id) {
case 'list_1':
console.log('点击了列表1')
break
case 'list_2':
console.log('点击了列表2')
break
case 'list_3':
console.log('点击了列表3')
break
}
})

这样写虽然减少了监听事件,但是不能阻止列表事件冒泡了。

git常用命令

发表于 2018-12-18 | 分类于 git
字数统计: 390 | 阅读时长 ≈ 1

记录工作中常用的Git命令

  1. git add ./xxx: 添加所有/单个修改的文件到缓存区
  2. git commit -m’提交信息’: 提交缓存区的文件到本地仓库
  3. git push origin(服务器名) master(分支名): 推送本地仓库到git服务器
  4. git tag xxx(标签名): 给最近的commit打标签,适用于打版本
  5. git push origin(服务器名) xxx(标签名): 把标签推送到git服务器
  6. git tag -d xxx(标签名): 删除本地标签
  7. git push –delete xxx(标签名): 删除git服务器标签
  8. git branch xxx(分支名) xxx(标签名): 通过标签创建本地分支,适用于某个版本内容有修改
  9. git fetch –all: 拉取git服务器所有内容
  10. git reset –hard origin(服务器名)/master(分支名): 放弃本地修改内容,返回服务器最新提交的内容
  11. git log: 查看提交日志id
  12. git reset –hard xxx(提交日志id): 回滚到某个提交的版本
  13. ssh-keygen -t rsa -C “yourEmail@email.com“: 生成ssh密钥配置git
  14. git fetch origin(服务器名) xxx(分支名): 拉取远程服务器某个分支到本地
  15. git checkout -b XXX(本地分支名称) origin/XXX(远程分支名称): 在本地创建分支dev并切换到该分支,并与指定的远程分支关联起来
  16. git init –> git remote add origin git@github.com:XXXX/xxxx.git(某个远程仓库): 文件夹与远程仓库相关联
  17. git branch -d XXX(分支名): 删除本地分支
  18. git push origin –delete XXX(分支名): 删除远程仓库分支。
1…567
邱仁亮

邱仁亮

我才发现梦想与现实之间差别

31 日志
10 分类
17 标签
RSS
GitHub E-Mail
Links
  • 学习资源
  • Web前端导航
© 2018 — 2020 邱仁亮 | Site words total count: 41.5k