Sticky Posts

17k words 15 mins.

# diff 算法 diff 算法可以进行精细化对比,实现最小量更新 虚拟节点变成 DOM 节点在 diff 中可以做到 新虚拟 DOM 和旧虚拟 DOM 进行 diff (精细化比较),算出应该如何最小量更新,最后反映到真正的 DOM 上 # snabbdom snabbdom (瑞典语,“速度”) 是著名的虚拟 DOM 库,是 diff 算法的鼻祖 Vue 源码借鉴了 snabbdom 源码使用 TypeScript 写的 https://github.com/snabbdom/snabbdom 从 npm 下载的是 build 出来的 JavaScript 版本 npmnpm...
8.7k words 8 mins.

# 正则表达式简单实现 最简单的实现则是利用 replace 方法,进行正则匹配 /\{\{\s*(\w+)\s*\}\}/g 我是利用这个正则来匹配符合,括号里面允许有多余空格 // 1. 定义模板const templateStr = `<h2>我喜欢吃{{peach}}, {{ lain }}也喜欢吃...
17k words 15 mins.

# 思考如何实现 Promise ? Promise 类设计 首先 Promise 有三种状态,如何进行状态之间的管理? new Promise 的时候, 会传入一个函数 (executor),函数有 resolve 和 reject 两个参数。并且传入的函数是立即执行函数,如何实现? 同时 resolve 和 reject 也会有参数, 所以我们如何管理参数? then 方法实现思路 then 方法是所有方法里面考虑的情况最多的,也是较难实现的 then 调用必须在得到结果之后才执行,否则 then 方法会得到 undefined then...

Categories

Post List

1.9k words 2 mins.

# What is recycle bin in oracle The Recycle Bin is a virtual container where all dropped objects reside. (回收站是一个虚拟容器,所有删除的对象都存放在其中) The dropped objects occupy the same space as when they were created. (被删除的对象占用的空间与创建时的空间相同。) Once the tables are dropped any associated objects such as indexes,...
4.3k words 4 mins.

# Prerequisites CREATE TABLE DATE_TEMP( ID NUMBER, YEAR NUMBER, MONTH NUMBER, DAY NUMBER);# FORALL FORALL index_name IN { lower_bound .. upper_bound | INDICES OF collection_name [ BETWEEN lower_bound AND upper_bound ] | VALUES OF index_collection } [ SAVE EXCEPTIONS ]...
1.3k words 1 mins.

# Java Source create or replace and compile java source named JavaUtils aspackage com.java.util;import java.text.SimpleDateFormat;import java.util.Date;public class JavaUtils { public static void entry(){ System.out.println(123); } public static String getNowDate(String...
828 words 1 mins.

# syntax expr 可理解为当前字段数值所占的分子。如果下方的 over 中缺省,则根据当前字段值的总和来占比。 query_partition_clause(可选填) 可理解为 expr 相同分区字段值的综合人(分母)。 可参考:https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/RATIO_TO_REPORT.html#GUID-9D10C275-4341-435F-ACF4-767B9CCB7390 RATIO_TO_REPORT(expr) OVER ([...
9.4k words 9 mins.

# Create Type Basic 使用 type 建表可以局限于只为这张表提供对应的属性或方法 -- way 1create or repalce type type_name as object ( field_name type, field_name type, ...);-- way 2Create or replace type type_name of custom_type;# AS OBJECT create or replace type t1 as object ( userid varchar2(100), username...
1.8k words 2 mins.

# 单维数组 -- 不加 INDEX BY BINARY_INTEGER 写法DECLARE TYPE SEQ_TYPE IS TABLE OF NUMBER; V_SEQ SEQ_TYPE:= SEQ_TYPE();BEGIN V_SEQ.EXTEND; V_SEQ(1):= 2; V_SEQ.EXTEND; V_SEQ(2):= 3; V_SEQ.EXTEND; V_SEQ(3):= 3; FOR I IN 1.. V_SEQ.COUNT LOOP DBMS_OUTPUT.PUT_LINE(V_SEQ(I)); END LOOP;END;-- 2 3 3-- 加上 INDEX BY...
836 words 1 mins.

# _ORACLE_SCRIPT 内部维护使用,在 oracle 12 以上创建用户需要加 c##,这时我会使用以下代码,突破 oracle 的限制,用户切记改回 false。 可参考:https://serverfault.com/questions/923623/persist-alter-session-set-oracle-script-true-in-oracle-12c alter session set "_ORACLE_SCRIPT"=true;# 查询表空间 -- 查询当前用户所处表空间select default_tablespace from...
6.8k words 6 mins.

# Session 认证机制 客户端第一次请求服务器的时候,服务器通过响应头的形式,向客户端发送一个身份认证的 Cookie,客户端会自动将 Cookie 保存在浏览器中。 随后,当客户端浏览器每次请求服务器的时候,浏览器会自动将身份认证相关的 Cookie,通过请求头的形式发送给服务器,服务器即可验明客户端的身份。 注意:千万不要使用 Cookie 存储重要且隐私的数据! 比如用户的身份信息、密码等。 # Session 安装 在 Express 项目中,只需要安装 express-session 中间件,即可在项目中使用 Session 认证 npm install...
3.4k words 3 mins.

# 连接 MySQL 步骤 安装操作 MySQL 数据库的第三方模块(mysql) 通过 mysql 模块连接到 MySQL 数据库 通过 mysql 模块执行 SQL 语句 # 安装 MySQL 模块 mysql 模块是托管于 npm 上的第三方模块。它提供了在 Node.js 项目中连接和操作 MySQL 数据库的能力。 npm install mysql# 配置 MySQL 模块 在使用 mysql 模块操作 MySQL 数据库之前,必须先对 mysql 模块进行必要的配置,主要的配置步骤如下 // 1. 导入 mysql 模块const mysql =...
5.8k words 5 mins.

# CORS 中间件 解决接口跨域问题的方案主要有两种: CORS (主流的解决方案 推荐使用) JSONP (有缺陷的解决方案:只支持 GET 请求) cors 是 Express 的一个第三方中间件。通过安装和配置 cors 中间件,可以很方便地解决跨域问题,如下 router.js const express = require('express')const router = express.Router()router.get('/get', (req, res) => {...