node

移除DOM节点

自作多情 提交于 2020-04-03 04:34:15
在IE中移除容器类节点,会引起内存泄露,最好是创建一个新的节点,比如div,然后将要删除的节点放入这个div中,再将div的innerHTML清空。其它的直接removeChild就可以了。 var removeNode = !+"\v1" ? function(){ var d; return function(node){ if(node && node.tagName != 'BODY'){ d = d || document.createElement('DIV'); d.appendChild(node); d.innerHTML = ''; } } }() : function(node){ if(node && node.parentNode && node.tagName != 'BODY'){ node.parentNode.removeChild(node); } } 移除节点 //--> */ /*--> */ 要去除的父元素 子元素 去除ddd元素 检测ddd元素是否存在 去除eee元素 检测eee元素是否存在 运行代码 移除节点: xxx.removeChild(obj) xxx是所删除节点的父节点 xxx.removeNode(true) xxx是所要删除的节点 来源: https://www.cnblogs.com/rubylouvre/archive

HDP2.4安装(二):Centos7配置

扶醉桌前 提交于 2020-04-03 01:59:43
目录: 系统环境准备 安装ES集群 安装Kibana 安装x-pack 安装head 系统环境准备 参见: HDP2.4安装(二):Centos7配置 修改network: 修改hosts: 配置ssh : 配置ntp服务 配置selinux 安装java jdk 文件数与虚拟内存配置 命令: vim /etc/sysctl.conf 打开编辑器中增加如下配置 fs.file-max=655350 vm.max_map_count=655360 执行命令: sysctl -p 命令: vim /etc/security/limits.conf 添加下面配置: * soft nofile 655350 * hard nofile 655350 命令: reboot (重启机器) 测试集群节点: 10.0.0.5 JNES01 (A2系列) 10.0.0.6 JNES02 (A2系列) 安装ES集群 ES5.1下载地址: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.1.tar.gz 解压: tar -zxvf elasticsearch-5.1.1.tar.gz 新建存储目录: mkdir -p /mnt/data/esdata 目录权限: chmod -R 777 /mnt/data

JDK源码那些事儿之SynchronousQueue下篇

☆樱花仙子☆ 提交于 2020-04-02 14:07:37
之前一篇文章已经讲解了阻塞队列SynchronousQueue的大部分内容,其中默认的非公平策略还未说明,本文就紧接上文继续讲解其中的非公平策略下的内部实现,顺便简单说明其涉及到的线程池部分的使用 前言 回顾一下,SynchronousQueue通过两个内部类实现了公平策略和非公平策略的无缓存阻塞队列,每种操作都需要对应的互补操作同时进行才能完成,例如,入队操作必然对应出队操作,在不涉及超时和中断的情况下,必须等待另一个线程进行出队操作,两两匹配才能执行,否则就阻塞等待 之前已经对公平策略下的内部类实现TransferQueue做了详细的说明,今天就非公平策略下的内部实现类TransferStack进行说明 TransferStack 不同于公平策略下的操作,只有一种状态需要注意: 取消操作(被外部中断或者超时):match == this; SNode SNode基于栈的节点实现,变量与QNode有些不同,其中match在两个操作匹配上之后可以通过这个变量找到其匹配的节点,节点类型mode在使用上也有所不同,下面使用到时会进行说明,其他参数可参考TransferQueue的QNode说明 static final class SNode { // next指向栈中下一个元素 volatile SNode next; // next node in stack //

webstorm/...开发 NodeJS 项目-节1

对着背影说爱祢 提交于 2020-04-01 16:49:32
使用 mongodb 的小系统 参考: https://my.oschina.net/chenhao901007/blog/312367 1. Robomongo 创建项目的数据库和数据表 参考: http://www.2cto.com/database/201604/498288.html 配置连接: Ok,连接成功齐活儿~ 一般不使用上述数据库,需新建自己的数据库 , 鼠标移到 local 上---右键---Creat DataBase---输入 数据库名称 --- 单击 creat 即可,如下建立了一个名为 recordsDB 的数据库 :    新建的数据库 recordsDB 展开,如下图:    然后,我们需要建立 collection,即建立数据表: 如下,我们建立一个名为 “users” 的用户数据表:右键Collections --- Creat Collection ... --- 填写Collection Name --- Creat 即可    结果如下:    数据表建好后,就可以插入数据 or 导入数据 (1) 插入数据/字段(Document):鼠标右键点击数据库表->选择Insert Document,弹出:     回车 填写 单条数据,如下:建立一个用户和密码信息--- 单击save 保存 双击数据表名称, 结果如图(其中 _id

HTMLCollection与NodeList

时光总嘲笑我的痴心妄想 提交于 2020-04-01 13:54:26
NodeList v.s. HTMLCollection 主要有两个方面不一样 1.包含节点的类型 2.使用方法 1.包含节点的类型不同(重要) (1)NodeList 一个节点的集合,既可以包含元素和其他节点(注释节点、文本节点等)。 (2)HTMLCollection 元素集合, 只有Element 2.使用方法 相同点: 1) 它们都有length属性 2) 都有元素的getter,叫做item,可以传入索引值取得元素。 3) 都是类数组 不同点: HTMLCollection还有一个nameItem()方法,可以返回集合中name属性和id属性值的元素。(部分浏览器也支持NodeList的nameItem()方法) 详细讲解 涉及获取元素的主要API DOM最初设计是为了解析XML而设计的,之后沿用到HTML上。我们可以把DOM分为两部分 core 和 html,Core 部分提供最基础的 XML 解析API说明,HTML 部分专为 HTML 中的 DOM 解析添加其特有的 API。NodeList接口是在core中体现的,HTMLCollection则是在html部分,不同浏览器也会实现它们的不同接口。但是现在的dom标准已经不分core和html了,反映的是浏览器的实现()。唯一要注意的是 querySelectorAll 返回的虽然是 NodeList

node 进阶 | 通过node中如何捕获异常阐述express的特点

冷暖自知 提交于 2020-04-01 09:01:13
node如何捕获异常     node基于js的单线程,有了非阻塞异步回调的概念,但是在处理多个并发连接时,并发环境要求高,最重要的是单线程,单核CPU,一个进程crash则web服务都crash,但是为什么node还这么火?甚至有了Node工程师这个岗,肯定就是node有自己crash之前与之后的解决方法,比如捕获异常    问:nodejs如何捕获异常?答:回调函数中有err形参,console.log出来,这是我之前回答别人问题的答案,但是自从我这几天看了如何捕获异常,才知道捕获异常的精髓就是不要让服务crash掉,抛出500状态码。而我回答的是风马牛不相及。     一般如何捕获异常    1、使用uncaughtExprection去捕获异常 process.on("uncaughtExpection",function(err){ console.log(err) })    2、用try-catch在回调函数前捕获异常     var http = require('http'); http.createServer(function(req, res) { try { fn(req, res); } catch(e) { console.log(e.stack); res.end("Error") } }).listen(3000); function fn

【封装】二叉树相关算法的实验验证

天大地大妈咪最大 提交于 2020-04-01 08:34:40
二叉树的一些基本知识: 二叉树与树有许多相似之处,但二叉树不是树的特殊情形。 定义 在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。 二 叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^{i-1}个结点; 深度为k 的二叉树至多有2^k-1个结点; 对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1。 一棵深度为k,且有2^k-1个节点称之为满二叉树;深度为k,有n个节点的二叉树,当且仅当其每一个节点都与深度为k的满二叉树中,序号为1至n的节点对应时,称之为完全二叉树。 相关术语 树的结点:包含一个数据元素及若干指向子树的分支; 孩子结点:结点的子树的根称为该结点的孩子; 双亲结点:B 结点是A 结点的孩子,则A结点是B 结点的双亲; 兄弟结点:同一双亲的孩子结点; 堂兄结点:同一层上结点; 祖先结点: 从根到该结点的所经分支上的所有结点子孙结点:以某结点为根的子树中任一结点都称为该结点的子孙 结点层:根结点的层定义为1;根的孩子为第二层结点,依此类推; 树的深度:树中最大的结点层 结点的度:结点子树的个数 树的度: 树中最大的结点度。

启动Nodejs服务

痞子三分冷 提交于 2020-04-01 07:51:03
vs code 中间创建 1. settings.json { "git.ignoreLimitWarning" : true } 2. 1. npm init 安装pageage.json 2. npm install JQurey bootstrap 3. 安装 npm install -g cnpm --registry=https://registry.npm.taobao.org 4. node http服务 1. require('http') //引入 2. 创建http服务 3. 接收发送响应请求 http.CreateServer Response.writeHead(200,{'Content-Type':'text/plain'}) //请求头 content-Type: text/html //以html 返回 text/plain // 以原样返回 text/join text/xml 3. // 1. require('http') var http = require ( 'http' ) var port = 8000 // 2. 通过http模块创建http服务 var nodeServer = http. createServer ( function ( request , response ) { // 发送http头部 // http

const isProduction = process.env.NODE_ENV === 'production'; 作用

非 Y 不嫁゛ 提交于 2020-04-01 07:37:25
一. process 要理解 process.env.NODE_ENV 就必须要了解 process, process 是 node 的全局变量 , 并且 process 有 env 这个属性 , 但是没有 NODE_ENV 这个属性。大家可以创建一个 js (比如index.js)文件,然后打印 process(console.log(process)),在 node 环境下运行\ ,就可以看到 process 里面所有的内容(可以看到里面有 env 这个属性)。 二. process.env.NODE_ENV 的作用 这个变量并不是 process.env 直接就有的,而是通过设置得到的。 这个变量的作用是:我们可以通过判断这个变量区分开发环境或生产环境。 三. 如何设置 process.env.NODE_ENV 来源: https://www.cnblogs.com/Rivend/p/12233207.html

C:无空头链表

邮差的信 提交于 2020-04-01 06:31:03
1.链表的结构体以及全局变量声明 #include <stdio.h> #include <stdlib.h> // 创建Node结构体 struct Node { int a; struct Node * pNext; }; //链表头尾指针 struct Node* g_pHead = NULL; //刚开始链表头部为null(头部:内容,该节点的内容存储) struct Node* g_pEnd = NULL; //刚开始链表尾部为null      头尾都为null,表示空头链表 2.创建链表函数(插尾法和插头法) ①插尾插入法 //创建链表,在链表中增加一个数据,尾添加 (g_pEnd发生变化,但是g_pHead不变化,只与第一个传入的Temp有关) void AddListTail(int a) { //创建一个结点 struct Node * pTemp = (struct Node*)malloc(sizeof(struct Node)); //结点数据进行赋值 pTemp->a = a; pTemp->pNext = NULL; //链接 if(NULL == g_pHead || NULL == g_pEnd) //也就是刚开始,头尾都是空,其实写一个就可以,头是空,尾就是空 { g_pHead = pTemp; //此时pTemp的地址既是头也是尾