李子园

day day up


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

nextTick使用

发表于 2020-07-07 分类于 Vue

Vue.nextTick( [callback, context] )文档中的解释:

  • 参数:

    • {Function} [callback]
    • {Object} [context]
  • 用法:
    在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // 修改数据
    vm.msg = 'Hello'
    // DOM 还没有更新
    console.log(vm.$el.textContent) // 并不会得到'Hello'
    Vue.nextTick(function () {
    // DOM 更新了
    console.log(vm.$el.textContent) //可以得到'Hello'
    })

    // 作为一个 Promise 使用 (2.1.0 起新增,详见接下来的提示)
    Vue.nextTick()
    .then(function () {
    // DOM 更新了
    })
阅读全文 »

理解Promise

发表于 2020-07-07 分类于 Vue

异步定义

当一个操作开始执行后,主程序无需等待它的完成,可以继续向下执行。此时该操作可以跟主程序同时(并发)执行。这种操作我们就称之为异步操作。 通常当操作完成时,会执行一个我们事先设定好的回调函数来做后续的处理。

我们常见的异步操作例如:

  • 添加定时器 setTimeout/setInterval
  • 执行某个动画 animate
  • 发起网络请求 request
阅读全文 »

Nginx和php-fpm用户权限说明

发表于 2020-06-28 分类于 Linux

Nginx权限

我们知道,Nginx本身不能解析PHP的语法,所以Nginx对于静态文件(如HTML等)会直接解析返回结果,但是对于PHP的文件,Nginx会转交给PHP的解释器php-fpm进行处理,此时则需要php-fpm用户对文件具有有读权限或者读写权限。处理完后再返回响应给客户端浏览器。

因此,我们代码目录下需要统一Nginx和php的服务所需权限。

最好的办法就是统一归类到一个新的用户组里面,通过给该用户组分配Nginx和php运行必要的权限,来实现对web应用的权限目录管理。

通常情况下,许多团队都会把这个用户组取名www,由www用户来统一管理代码目录权限。

我们可以看到Nginx的配置文件nginix.conf里面划分的运行权限就是配置到了www用户下,因此Nginx的子进程也是由www用户执行,可以通过ps aux | grep nginx来查看

阅读全文 »

XSS 和 CSRF

发表于 2020-06-28 分类于 Linux

XSS攻击

跨站脚本攻击(Cross Site Scripting)本来的缩写为CSS,为了与层叠样式表(Cascading Style Sheets,CSS)的缩写进行区分,将跨站脚本攻击缩写为XSS。因此XSS是跨站脚本的意思。

XSS跨站脚本攻击(Cross Site Scripting),的本质是攻击者在web页面插入恶意的script代码(这个代码可以是JS脚本、CSS样式或者其他意料之外的代码),当用户浏览该页面之时,嵌入其中的script代码会被执行,从而达到恶意攻击用户的目的。比如读取cookie,session,tokens,或者网站其他敏感的网站信息,对用户进行钓鱼欺诈等。比较经典的事故有:

2011年6月28日,新浪微博被XSS攻击,大量用户自动转发微博、私信。自动关注用户,大量用户被莫名其妙地控制。因为可以使用JS代码代替用户单击按钮发送请求,所以损坏非常大。

阅读全文 »

Nginx 的root和alias的区别

发表于 2020-06-28 分类于 Linux

作用域

nginx指定文件路径有两种方式root和alias,指令的使用方法和作用域:

root

语法:root path
默认值:root html
配置段:http、server、location、if

alias

语法:alias path
配置段:location

阅读全文 »

跨域总结

发表于 2020-05-15 分类于 前端

什么是跨域

什么是Cross-origin_resource_sharing? 跨域请求存在的原因:由于浏览器的同源策略,即属于不同域的页面之间不能相互访问各自的页面内容。

阅读全文 »

乐观锁 悲观锁 共享锁 排他锁

发表于 2020-05-15 分类于 Mysql

乐观锁

概念

乐观锁是逻辑概念上的锁,不是数据库自带的,需要我们自己去实现。
乐观锁是指操作数据库(更新操作)时,想法很乐观,认为这次操作不会导致冲突,在操作数据库时,并不进行任何其他特殊处理(也就是不加锁),而在进行更新后,再去判断是否有冲突。

阅读全文 »

Myisam和InnoDB解析

发表于 2020-04-27 分类于 Mysql

数据库文件

两种不同引擎创建后生成的文件如下,说明这两个引擎数据和索引的组织方式是不一样的。

Innodb 创建表后生成的文件有:

  • frm:创建表的语句
  • idb:表里面的数据+索引文件

Myisam 创建表后生成的文件有

  • frm:创建表的语句
  • MYD:表里面的数据文件(myisam data)
  • MYI:表里面的索引文件(myisam index)
阅读全文 »

红黑树、AVL树、B树 和 B+树

发表于 2020-04-27 分类于 Mysql

我们知道,索引的作用是做数据的快速检索,而快速检索的实现本质是数据结构。通过不同数据结构的选择,实现各种数据的快速检索。
下面介绍几种MySQL索引底层数据结构选型:

红黑树

特征:

  1. 他是一棵BST树
  2. 节点是红色或黑色
  3. 根是黑色
  4. 所有叶子都是黑色
  5. 每个红色节点必须有两个黑色的子节点
  6. 从任一节点到每个叶子节点的所有简单路径都包含相同数目的黑色节点
阅读全文 »

算法-矩阵

发表于 2020-04-16 更新于 2020-04-18 分类于 算法

01矩阵 LeetCode-542

给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。

两个相邻元素间的距离为 1 。

Example 1:

1
2
3
4
5
6
7
8
9
Input:
[[0,0,0],
[0,1,0],
[0,0,0]]

Output:
[[0,0,0],
 [0,1,0],
 [0,0,0]]

Example 2:

1
2
3
4
5
6
7
8
9
Input:
[[0,0,0],
[0,1,0],
[1,1,1]]

Output:
[[0,0,0],
[0,1,0],
[1,2,1]]
阅读全文 »
123…8
多乐

多乐

li写东西的地方
73 日志
10 分类
44 标签
GitHub E-Mail Twitter
© 2021 多乐
© 2018-2019 Powered By 多乐
|
粤ICP备19082463号
|