kindring 3 years ago
parent
commit
6de8edbb1d

BIN
1.mp4


+ 50 - 0
C与C++/基本知识.md

@@ -0,0 +1,50 @@
+# `cpp`基本知识
+## 函数相关
+### 双冒号
+1. 指定作用域 前面是作用域等类名称,后面接类的成员名称
+例: A,B表示两个类,A,B中都有成员numb
+    A::numb
+    B::numb
+2. 指定全局作用域的变量
+例: 指定 使用全局变量或者局部变量
+```cpp
+#include <stdio.h>
+
+int count = 0; //全局变量 0
+
+void main()
+{
+ 
+ int count = 10; //局部变量10
+ 
+ printf("count =%d\n",count);//局部变量屏蔽了全局变量 所以输出结果是10
+ {
+  int count = 20;
+  
+  printf("count =%d\n",::count); //作用域符号指出引用全局变量0
+  //::sort
+ }
+}
+```
+3. 另外,双冒号也常常用于在类变量内部作为当前类实例的元素进行表示
+例:
+```cpp
+class CA {
+public:
+  int ca_var;
+  int add(int a, int b);
+  int add(int a);
+};
+ 
+//作用域
+int CA::add(int a, int b)
+{
+  return a + b;
+}
+ 
+//另外,双冒号在类变量内部作为当前类实例的元素进行表示
+int CA::add(int a)
+{
+  return a + ::ca_var;
+}
+``` 

+ 6 - 0
css/文本相关.md

@@ -42,4 +42,10 @@ div{
 
 ```css
 text-indent:2em;
+```
+## 禁止用户选中文字
+``` css
+.not-select{
+    user-select:none;
+}
 ```

+ 40 - 0
express/post接受请求带进度条方法.js

@@ -0,0 +1,40 @@
+/*
+ * @Description: post请求携带
+ * @Autor: kindring
+ * @Date: 2022-01-11 14:32:31
+ * @LastEditors: kindring
+ * @LastEditTime: 2022-01-11 14:33:04
+ * @LastDescript: 
+ */
+const formidable = require('formidable');
+app.post('/up', function(req, res) {
+    console.log('接受到上传文件');
+    //上传数据
+    let form = new formidable.IncomingForm();
+    var allFile = [];
+    form.uploadDir = './tmp';
+    form.type = true;
+    form.on('progress', function(bytesReceived, bytesExpected) { //在控制台打印文件上传进度
+        let progressInfo = {
+            value: bytesReceived, //当前进度
+            total: bytesExpected //总进度
+        };
+        let bar_progress = Math.floor((progressInfo.value / progressInfo.total) * 100);
+        console.log(`当前进度: ${bar_progress}`);
+        //res.write(JSON.stringify(progressInfo));
+    }).on('file', function(filed, file) {
+        allFile.push([filed, file]); //收集传过来的所有文件
+    }).on('end', function() {
+        console.log('文件上传完成 ok');
+        // res.send('ok');
+    }).on('error', function(err) {
+        console.error('上传失败:', err.message);
+    }).parse(req, function(err, fields, files) {
+        console.log(fields);
+        console.log(files);
+        if (err) {
+            console.log(`接收失败${err.message}`);
+        }
+    })
+
+})

+ 1 - 0
express/热刷新导入.md

@@ -0,0 +1 @@
+# 在文件发生改变时自动更新依赖

+ 113 - 0
index.html

@@ -0,0 +1,113 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+    <style>
+        * {
+            margin: 0;
+            padding: 0;
+            font-size: 0
+        }
+        
+        .i {
+            width: 200px;
+            height: 200px;
+            /* border: 1px solid orangered; */
+            background-color: #000;
+            /* float: left; */
+            margin: 0;
+            border: 0
+        }
+        
+        .div {
+            margin: 200px;
+            width: 200px;
+            padding: 100px;
+            border: 1px solid black;
+            position: relative;
+        }
+        
+        .div2 {
+            margin: 200px;
+            width: 200px;
+            padding: 100px;
+            border: 1px solid black;
+            float: left;
+        }
+    </style>
+</head>
+
+<body>
+    <video src="./1.mp4" width="500" height="500" controls></video>
+    <img src="./1_answer_a.png" alt="" class="i">
+    <div class="div2">
+        <div class="div">
+
+            <div class="div">
+
+                <img src="./1_answer_b.png" alt="" class="i" onclick="drag()">
+            </div>
+        </div>
+    </div>
+    <div class="div2">
+
+        <div class="div2">
+
+            <div class="div2">
+
+                <img src="./1_answer_b.png" alt="" class="i" onclick="drag()">
+            </div>
+        </div>
+    </div>
+</body>
+<script>
+    function drag(e) {
+        e = e || window.event;
+        console.log(e.target);
+        console.log(e.target.offsetLeft);
+        console.log(getOffsetLeft(e.target));
+    }
+
+    function getOffsetLeft(obj) {
+        let tmp = obj.offsetLeft;
+        let val = obj.offsetParent;
+        while (val != null) {
+            tmp += val.offsetLeft;
+            val = val.offsetParent;
+        }
+        return tmp;
+    };
+
+    let arr = [
+            [0, 1, 1],
+            [1, 1, 0],
+            [1, 0, 0]
+        ]
+        [
+            [1, null, null],
+            [0, 0, 1],
+            [1, null, null]
+        ]
+        [
+            [1, 0, 1],
+            [1, 0, 1],
+            [0, 1, 0]
+        ]
+
+    function isOk(arr) {
+        let total = 0
+        for (var i = 0; i < arr.length; i++) {
+            // if(){
+
+            // }
+            total += i;
+        }
+        console.log(i)
+    }
+</script>
+
+</html>

+ 21 - 0
js/node相关/md5.js

@@ -0,0 +1,21 @@
+/*
+ * @Description: 
+ * @Autor: kindring
+ * @Date: 2022-01-24 14:47:56
+ * @LastEditors: kindring
+ * @LastEditTime: 2022-01-24 14:48:03
+ * @LastDescript: 
+ */
+// 引入crypto模块
+const crypto = require('crypto');
+
+// 规定使用哈希算法中的MD5算法
+const hash = crypto.createHash('md5');
+
+// 可任意多次调用update(),效果相当于多个字符串相加
+hash.update('987653abc');
+hash.update('123456789');
+
+// 最终加密的字符串为'987653abc123456789',hash.digest('hex')表示输出的格式为16进制
+const a = hash.digest('hex');
+console.log(a); // c3b93d3065f112b02ac70e09762469b0

+ 33 - 0
js/node相关/require.js

@@ -0,0 +1,33 @@
+/*
+ * @Description: require相关操作
+ * @Autor: kindring
+ * @Date: 2022-02-11 15:40:55
+ * @LastEditors: kindring
+ * @LastEditTime: 2022-02-11 17:18:37
+ * @LastDescript: 
+ */
+
+
+// 导入文件
+require(pathString);
+
+// 清除缓存
+require.cache('')
+delete require.chche['modulePath'];
+
+// 使用清除缓存示例
+// 在一定时间内没有调用一个函数会自动删除缓存,用于刷新参数
+
+let waitTime = 60 * 1000;
+let timer = null;
+
+function MotorData() {
+    let motorConfig = require('../configs/motor.json');
+    if (timer) {
+        clearTimeout(timer);
+    }
+    timer = setTimeout(() => {
+        delete require.catch['../configs/motor.json']
+    }, waitTime);
+    return motorConfig;
+}

+ 28 - 0
js/promise研究/all.js

@@ -0,0 +1,28 @@
+function fn1() {
+    return new Promise((resolve, reject) => {
+        setTimeout(() => {
+            resolve(1);
+        }, 1000)
+    })
+}
+
+function fn2() {
+    return new Promise((resolve, reject) => {
+        setTimeout(() => {
+            reject(2);
+        }, 2000)
+    })
+}
+
+
+function main() {
+    let f1e, f2e;
+    let f1 = fn1().catch(err => { f1e = err });
+    let f2 = fn2().catch(err => { f2e = err });
+    Promise.all([f1, f2]).then(val => {
+        console.log(val);
+        console.log(f1e);
+        console.log(f2e);
+    })
+}
+main();

+ 9 - 0
redis/redis.md

@@ -0,0 +1,9 @@
+# redis
+## 配置redis
+### 设置连接密码
+1. 设置密码
+```shell
+config get requirepass
+config set requirepass "gcz2460"
+``` 
+3. 设置

+ 9 - 0
webrtc/学习记录.md

@@ -0,0 +1,9 @@
+# `webrtc`相关代码学习记录
+## metaRtc项目源码阅读
+> 阅读目标,成功试用metaRtc实现与浏览器进行通信,主要阅读为`metaRtc`的`C`版本,以`libmetartccore2`内的代码为标准
+
+### 目录结构
+1. yargwebrtc
+   1. yarnCRecvTrack.h
+   2. 
+    

BIN
奇思妙想/1.mp4


+ 1 - 0
奇思妙想/index.html

@@ -42,6 +42,7 @@
 </head>
 
 <body>
+    <video src="./1.mp4" width="500" height="500" controls></video>
     <img src="./1_answer_a.png" alt="" class="i">
     <div class="div2">
         <div class="div">

+ 6 - 0
日常/22-01-24 工作.md

@@ -0,0 +1,6 @@
+# 2022-01-24
+## todoList
+| 代办 | 详细 | 状态 |
+| - | - | - |
+| 登陆接口 | 用户登陆接口 |  |
+|