Entry

前端科普系列(4):Babel —— 把 ES6 送上天的通天塔

最后都变了- 提交于 2020-10-25 04:16:10
本文首发于 vivo互联网技术 微信公众号 链接: https://mp.weixin.qq.com/s/plJewhUd0xDXh3Ce4CGpHg 作者:Morrain 一、前言 在上一节 《 CommonJS:不是前端却革命了前端 》中,我们聊到了 ES6 Module,它是 ES6 中对模块的规范,ES6 是 ECMAScript 6.0 的简称,泛指 JavaScript 语言的下一代标准,它的第一个版本 ES2015 已经在 2015 年 6 月正式发布,本文中提到的 ES6 包括 ES2015、ES2016、ES2017等等。在第一节的《Web:一路前行一路忘川》中也提到过,ES2015 从制定到发布历经了十几年,引入了很多的新特性以及新的机制,浏览器对 ES6 的支持进度远远赶不上前端开发小哥哥们使用 ES6 的热情,于是矛盾就日益显著…… 二、Babel 是什么 先来看下它在 官网 上的定义: Babel is a JavaScript compiler 没错就一句话,Babel 是 JavaScript 的编译器。至于什么是编译器,可以参考 the-super-tiny-compiler 这个项目,可以找到很好的答案。 本文是以 Babel 7.9.0 版本进行演示和讲解的,另外建议学习者阅读英文官网,中文官网会比原版网站慢一个版本,并且很多依然是英文的。

C# Web大文件分片上传/多线程上传

天大地大妈咪最大 提交于 2020-10-24 16:05:47
ASP.NET上传文件用FileUpLoad就可以,但是对文件夹的操作却不能用FileUpLoad来实现。 下面这个示例便是使用ASP.NET来实现上传文件夹并对文件夹进行压缩以及解压。 ASP.NET页面设计:TextBox和Button按钮。 TextBox中需要自己受到输入文件夹的路径(包含文件夹),通过Button实现选择文件夹的问题还没有解决,暂时只能手动输入。 两种方法:生成rar和zip。 1.生成rar using Microsoft.Win32; using System.Diagnostics; protected void Button1Click(object sender, EventArgs e) { RAR(@"E:\95413594531\GIS", "tmptest", @"E:\95413594531\"); } /// /// 压缩文件 /// /// 需要压缩的文件夹或者单个文件 /// 生成压缩文件的文件名 /// 生成压缩文件保存路径 /// protected bool RAR(string DFilePath, string DRARName,string DRARPath) { String therar; RegistryKey theReg; Object theObj; String theInfo;

记一次多线程代码优化

无人久伴 提交于 2020-10-24 12:27:13
一、前言 并发运行相比串行执行很好,因为其可以减少执行时间,但是并发用的不对,也会造成资源浪费,本文我们就来探究一例子。 二、案例介绍与优化 有这样一段代码,根据传递的url列表,并发的去下载url对于的文件内容,原来代码模拟如下: //0 private final static ThreadPoolExecutor EXECUTOR_SERVICE = new ThreadPoolExecutor(8, 8, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(1)); public static void main(String[] args) { // 1.创建图片列表 List<String> imageList = new ArrayList<String>(); for (int i = 0; i < 3; ++i) { imageList.add(i + ""); } long start = System.currentTimeMillis(); // 2.并发处理url Map<String, String> resultMap = imageList.parallelStream().collect(Collectors.toMap(url -> url, url -> { try {

从Linux内核理解JAVA的NIO

断了今生、忘了曾经 提交于 2020-10-24 09:38:35
前言 IO 可以简单分为 磁盘 IO 和 网络 IO , 磁盘 IO 相对于 网络 IO 速度会快一点,本文主要介绍 磁盘 IO , 网络 IO 下周写。 JAVA 对 NIO 抽象为 Channel , Channel 又可以分为 FileChannel (磁盘 io)和 SocketChannel (网络 io)。 如果你对 IO 的理解只是停留在 api 层面那是远远不够的,一定要了解 IO 在系统层面是怎么处理的。 本文内容: FileChannel 读写复制文件的用法。 ByteBuffer 的介绍 jvm 文件进程锁,FileLock HeapByteBuffer ,DirectByteBuffer 和 mmap 谁的速度更快 从 Linux 内核 中的 虚拟内存 、 系统调用 、 文件描述符 、 Inode 、 Page Cache 、 缺页异常 讲述整个 IO 的过程 jvm 堆外的 DirectByteBuffer 的内存怎么回收 <img src="http://oss.mflyyou.cn/blog/20200711165857.png?author=zhangpanqin" alt="image-20200711165857889" style="zoom: 33%;" /> 本文计算机系统相关的图全部来自 《深入理解计算机系统》 对 Linux

OpenLDAP 2.4.44 安装部署避坑指南

时光总嘲笑我的痴心妄想 提交于 2020-10-24 04:43:10
写在前面: 有关openLDAP的部署文档在网上随意能找到很多,但是最近用到才发现网上的教程多数是旧版的用法,例如"/etc/openldap/slapd.conf “早已弃用,更有甚者直接修改/etc/openldap/slapd.d/下的文件,打开的时候上面明确写着不能修改此文件,那是多大的勇气能写成文档出来分享呢? 通过参考官方文档并且借鉴了两位前辈的文档,我整理出来如下步骤,并经过验证 一、环境准备 1. 操作系统: CentOS 7.x 2. 关闭防火墙、selinux 3. yum源(略) 忘了用不用依赖epel-release 自己试试 二、OpenLDAP服务安装 1. 服务安装 yum install -y openldap openldap-servers openldap-clients openldap-devel 2. 生成OpenLDAP管理密码 [root@localhost ~]# slappasswd New password: //此处输入密码 Re-enter new password: //再次密码 {SSHA}CrdqT5EAh8H2y2SorEUbuxP3R5eOggjb 记录好生成的密码,后面用得到 3. 配置OpenLDAP OpenLDAP 2.3之后的版本取消了/etc/openldap/slapd.conf的配置方式

(番外一)Arm32 中虚拟地址机制分析(Arm cortex-A系列 MMU工作机制分析)

一世执手 提交于 2020-10-23 19:45:09
Arm Cortex-A 系列 内存管理单元(MMU) 由于直接分析 linux arm32 mmu版 的启动代码会涉及到内存直接物理映射模式到开启虚拟地址映射模式的转换,这需要对 ARM32 中的虚拟地址实现机制有足够的了解才行,本文通过分析Arm Cortex-A 系列内存管理单元来分析ARM32中的虚拟地址机制。 Memory Management Unit 简称为 MMU ,它的一个最主要的功能就是进行地址转换,将处理器发出的 虚拟地址 转换为 物理地址 ,有了 MMU 的支持,才能让我们更容易地设计处多任务操作系统,以及在操作系统上开发应用程序,如果学习过逆向分析,就知道不同的可执行文件(区别于动态链接库与可重定向文件)的装载地址(entry point)在一般情况下都是相同的,并且在不同的程序中,也会有极大概率访问到相同的内存地址,为了防止冲突以及不必要的重定向任务, 虚拟地址 与地址转换的概念应运而生,只要操作系统为每一个进程维护一个虚拟地址转换表,这样就可以通过地址转换将处理器发出的相同地址转换为不同的物理地址,程序中也不再存在访问同一个地址发生冲突的问题,也有效阻止了一个进程非法读写另一个进程的内存数据的现象发生。 在不同的处理器架构中,虚拟地址转换的实现往往各不相同,本文主要分析 Arm Cortex-A 系列处理器的 MMU 与虚拟地址转换过程。 首先抛开理论

Apache Doris在作业帮实时数仓中的应用实践

…衆ロ難τιáo~ 提交于 2020-10-22 15:57:08
点击上方 蓝色字体 ,选择“ 设为星标 ” 回复”资源“获取更多资源 大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 大数据 真好玩 点击右侧关注,大数据真好玩! 1 . 什么是空检查 在Java里经常会判断一个对象是否为空,如果为空的对象访问方法,字段会抛出空指针异常,而空指针异常为运行异常,如果不抓取这个异常,有的时候会导致程序异常,为了解决这个问题,我们通常会在代码里显式的去判断该对象是否为空,进行为空的逻辑处理,这种做法逻辑虽然明确,但是由于空的逻辑并不是经常碰到,这样会导致有多余的逻辑分支判断。 2. 隐式空检查 implicit exception 我们先来看一个代码: public static int nullCheck(String value) { if(value == null){ return -1; } else{ return value.length(); } } 我们进行运行编译获取编译后的汇编 0x00007f23c922f107: mov 0xc(%rsi),%eax ; implicit exception: code begin: 0x00007f23c922f107; code end: 0x00007f23c922f10a; code end: 0x00007f23c922f0e0; implicit exception:

python3 tkinter图形化界面删除空文件

喜夏-厌秋 提交于 2020-10-22 02:02:09
# coding=utf-8 from tkinter import * import os import time def printInfo(): for root, dirs, files in os.walk(entry1.get(), topdown=0): for name in dirs: dirname = os.path.join(root, name) if not os.listdir(dirname): print('删除 ' + dirname) os.rmdir(dirname) item = dirname + ' deleted' list1.insert(0, item) list1.insert(0, time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) myWindow = Tk() myWindow.title('空目录清理') Label(myWindow, text="输入目录:").place(x=10, y=10) entry1 = Entry(myWindow, relief=SOLID) entry1.place(x=10, y=50, width=380) Button(myWindow, text='RUN', command=printInfo, relief

拥抱.NET Core系列:MemoryCache 初识

ぐ巨炮叔叔 提交于 2020-10-21 22:24:19
原文: 拥抱.NET Core系列:MemoryCache 初识 阅读目录 MSCache能做什么? 从IMemoryCache说起 开发者的体验 写在最后 Cache是一个绝大多数项目会用到的一个技术,说起到缓存可能就联想到 Set、Add、Get、Remove、Clear 这几个方法。那么在.NET Core中微软给我们带来了什么样的缓存体验呢?今天我们就来介绍下”Microsoft.Extensions.Caching.Memory”。 由于这个包名称过长,下文使用MSCache来代替。 回到目录 MSCache能做什么? 绝对过期支持 滑动过期支持(指定一个时间,TimeSpan,指定时间内有被Get缓存时间则顺延,否则过期) 过期回调 自定义过期 MSCache目前最新的正式版是 2.0.0,预览版是2.1.0,会与.NETCore 2.1一起发布。本篇用了2.0.0版本 开源在GitHub上,仓库地址是: https://github.com/aspnet/Caching NuGet地址为: https://www.nuget.org/packages/Microsoft.Extensions.Caching.Memory/2.0.0 回到目录 从IMemoryCache说起 IMemoryCache 就提供了三个方法并实现了 IDisposable 接口。 很好理解

HTML注入综合指南

若如初见. 提交于 2020-10-21 02:04:06
“ HTML”被视为每个Web应用程序的框架,因为它定义了托管内容的结构和完整状态。那么,您是否想过,是否用一些简单的脚本破坏了这种解剖结构?还是这种结构本身成为Web应用程序损坏的原因?今天,在本文中,我们将学习如何配置错误的HTML代码,从用户那里获取敏感数据。 什么是HTML? HTML称为超文本标记语言,是一种标识性的语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。HTML用于设计包含“超文本”的网站,以便将“文本包含在文本中”作为超链接,并包含包裹数据项以在浏览器中显示的元素组合。 那么这些元素是什么? “元素是HTML页面的所有内容,即,它包含开始和结束标记以及介于两者之间的文本内容。” 1. HTML标签 HTML标签标记了内容片段,例如“标题”,“段落”,“表单”等。标记符中的标记元素用尖括号括起来,带斜杠的元素表示该标记说明结束;大多数标记符必须成对使用,以表示作用的起始和结束。浏览器不会显示这些HTML标记,而是利用它们来捕获网页的内容。 2. HTML属性 超文本标记语言定义了多种数据类型的元素内容,如脚本数据和样式表的数据,和众多类型的属性值,包括ID、名称、URI、数字、长度单位、语言