Expose

.Net Core WebAPI + Axios +Vue 实现下载与下载进度条

廉价感情. 提交于 2020-08-05 05:25:30
故事的开始 老板说:系统很慢,下载半个小时无法下载,是否考虑先压缩再给用户下载?   本来是已经压缩过了,不过第一反应应该是用户下的数量多,导致压缩包很大,然后自己测试发现,只是等待的时间比较久而已,仍然是下载状态中,并不是系统慢,但是用户体验肯定是最直观的,确实是我们做得不够好,单纯弹出遮罩层显示冰冷的“拼命加载中……”,对用户来说确实不够友好。嗯,了解实际情况了,那就开撸,增加用户体验。 解决它 效果图: Vue+ElementUI < el-progress v-if ="dlProgress>0" :text-inside ="true" :stroke-width ="18" :percentage ="dlProgress" status ="success" style ="margin-bottom:10px" ></ el-progress > Axios downloadTask(index,row) { let own = this ; this .fullscreenLoading = true ; this .axios({ method: 'post' , url: this .baseUrl + '/api/Task/DownLoad' , data: {id: row.id}, responseType: 'blob' ,      //敲黑板

weakMap 和 map 的垃圾回收对比

江枫思渺然 提交于 2020-08-05 04:27:45
https://segmentfault.com/a/1190000022940544 WeakMap 介绍 WeakMap 对象是一组键/值对的集合,其中的键是 弱引用 的。 WeakMap 的 key 只能是 Object 类型。 原始数据类型是不能作为 key 的(比如 Symbol)。 WeakMap 只有四个方法可用: get() 、 set() 、 has() 、 delete() 。 ** 具体属性和方法介绍,可查看 《 MDN WeakMap 》。 3.2 WeakMap 应用 原文中介绍了“通过 WeakMap 缓存计算结果”和“在 WeakMap 中保留私有数据”两种应用场景。 另外还有一种比较常见的场景: 以 DOM节点作为键名的场景 。 场景1:当我们想要为DOM添加数据时,可使用 WeakMap 。 场景2:当我们想要为DOM元素添加事件监听时,可使用 WeakMap 。 使用--expose-gc 开启手动gc 结果表明,weakMap在key对象被回收时,会自动将对应的映射也回收掉 并且weakmap对于对象的引用不计入引用计数器 代码 分别调用两次测试函数,保证结果与调用顺序无关 const objNum = 64 * 1024; function usageSize() { const used = process.memoryUsage()

来,重新认识一个强大的 Gson!

两盒软妹~` 提交于 2020-08-04 19:09:55
_作者:Mafly cnblogs.com/mafly/p/gson.html 从一个 Bug 说起 不知道你们发现没有,你写完的程序无论当时怎么测试,过一段时间总会出 Bug 。再说一个每天都在发生的例子:在你写完一篇博客后,立即检查的话,总是查不出自己写的错别字。 据说这些都包含有一些大脑对当下事物处理的逻辑在里边,而且还有心理学因素在里边,我也不懂。反正现在就是程序出 Bug 了!出 Bug 了!! Bug !!! 事情是这样的,客户端请求服务器开放接口时,我们是以 JSON 字符串的形式返回的,这时候本来正常返回形式是这样: { "name": "mafly", "age": "18", "sex": "男" } 但这个名字叫 Mafly 的人他不想让你知道他是男是女。就没填性别,程序中默认赋值为 null 了,JSON 序列化时就发生了意想不到的事儿。推荐: JSON是什么,为什么这么流行? 重现一下那个 Bug 用于转换Java对象为 Json 字符串和把 Json 字符串转换为对象的工具类有很多,Gson、Jackson、FastJson等,我们用的是 Gson, 它是 Google 开发的,还据传说它的性能比较强大一些。嗯,对,我们用的就是这个。先看示例代码: public static void main(String[] args) { HashMap

docker部署项目项目并实现反向代理

感情迁移 提交于 2020-08-04 16:35:53
实现目标:以springboot项目为例,在不更新镜像或者容器的前提下 通过挂载的方式实现更新项目 新建一个目录 hgirl 用于放置制作镜像的文件 拉取项目并并打包 从git上拉取已有的项目 git clone https://gitee.com/yang_638000/hgirl.git 进入项目根目录并打包 mvn package 将打包好的jar文件copy到hgirl目录下 编写dockerfile文件 在hgirl目录下 vi dockerfile 写入如下信息: FROM java:8 EXPOSE 8180 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/data/hgirl.jar"] 制作镜像文件 docker build -t hgirl . 镜像的名字叫做 hgirl 创建一个hgirl实例并实现挂载目录 docker run --name hgirl -it -v /docker/hgirl:/data -d -p 8180:8180 hgirl -- name hgirl 表示指定容器名字叫做hgirl 并将宿主机的​​​/docker/hgirl目录与容器的/data目录映射起来 项目端口8180映射到容器的8180端口 通过 docker ps

Dockerfile文件详解

心已入冬 提交于 2020-07-29 04:54:09
什么是dockerfile? Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取 Dockerfile 中的指令自动生成映像。 docker build 命令用于从Dockerfile构建映像。可以在 docker build 命令中使用 -f 标志指向文件系统中任何位置的Dockerfile。 例: docker build -f /path/to/a/Dockerfile Dockerfile的基本结构 Dockerfile 一般分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令,’#’ 为 Dockerfile 中的注释。 Dockerfile文件说明 Docker以从上到下的顺序运行Dockerfile的指令。为了指定基本映像,第一条指令必须是 FROM 。一个声明以 # 字符开头则被视为注释。可以在Docker文件中使用 RUN , CMD , FROM , EXPOSE , ENV 等指令。 在这里列出了一些常用的指令。 FROM:指定基础镜像,必须为第一个命令 格式:   FROM <image>   FROM <image>:<tag>   FROM <image>@<digest> 示例:    FROM mysql :5.6 注:   tag或digest是可选的

Spring AOP 源码解析:注解式切面增强机制

心已入冬 提交于 2020-07-28 20:13:53
Spring AOP 源码解析:注解式切面增强机制 IoC 和 AOP 被称为 Spring 两大基础模块,支撑着上层扩展的实现和运行。虽然 AOP 同样建立在 IoC 的实现基础之上,但是作为对 OOP(Object-Oriented Programing) 的补充,AOP(Aspect-Oriented Programming) 在程序设计领域拥有其不可替代的适用场景和地位。Spring AOP 作为 AOP 思想的实现,被誉为 Spring 框架的基础模块也算是实至名归。Spring 在 1.0 版本的时候就引入了对 AOP 的支持,并且随着版本的迭代逐渐提供了基于 XML 配置、注解,以及 schema 配置的使用方式,考虑到实际开发中使用注解配置的方式相对较多,所以本文主要分析注解式 AOP 的实现和运行机制。 注解式 AOP 示例 首先我们还是通过一个简单的示例演示一下注解式 AOP 的具体使用。假设我们声明了一个 IService 接口,并提供了相应的实现类 ServiceImpl,如下: public interface IService { void sayHello(); void sayHelloTo(String name); void sayByebye(); void sayByebyeTo(String name); } @Service public

Docker 定制ssh、java等基础服务镜像

点点圈 提交于 2020-07-27 05:58:55
1、启动一个基于centos镜像的容器 # docker run –p 10022:22 - ti centos bash [root@f743588bbeef /]# -p: 本地端口映射容器22端口,是为了后面启动ssh后测试能否正常登陆 2、在容器中安装openssh-server、java等 [root@f743588bbeef /]# yum install -y -q openssh-server java-1.7.0-openjdk net-tools 3、修改sshd_config配置文件 [root@f743588bbeef /]# ssh-keygen -q -t rsa -b 2048 -f /etc/ ssh /ssh_host_rsa_key -N '' [root@f743588bbeef /]# ssh-keygen -q -t ecdsa -f /etc/ ssh /ssh_host_ecdsa_key -N '' [root@f743588bbeef /]# ssh-keygen -t dsa -f /etc/ ssh /ssh_host_ed25519_key -N '' [root@f743588bbeef /]# sed -i " s/UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g "

Docker从入门到DevOps,看完这个系列就够了(三)

橙三吉。 提交于 2020-05-09 10:42:40
文章索引 Docker从入门到DevOps系列目录 Docker从入门到DevOps| 第一篇:DevOps工程的基石 —— Docker Docker从入门到DevOps| 第二篇:Docker常用命令 —— 镜像与容器操作 Docker从入门到DevOps| 第三篇:Docker镜像封装以及提交镜像至阿里云镜像库 Docker从入门到DevOps| 第四篇:用Docker部署一个基于SpringBoot + vue 前后端分离的应用 Docker从入门到DevOps| 第五篇:一键部署你的应用 —— docker-compose初体验 Docker从入门到DevOps| 第六篇:初探DevOps思想,DevOps利器walle介绍 Docker从入门到DevOps| 第七篇:Docker + walle + SpringBoot + Git实现项目的DevOps(一) Docker从入门到DevOps| 第八篇:Docker + walle + SpringBoot + Git实现项目的DevOps(二) Docker从入门到DevOps| 第九篇:Docker + walle + SpringBoot + Git实现项目的DevOps(三) Docker从入门到DevOps| 第十篇:初探Docker、Kubernetes与微服务思想 前言

服务器docker部署使用最新dubbo-admin(2)

99封情书 提交于 2020-05-08 12:32:38
下载最新dubbo-admin https://github.com/apache/dubbo-admin 1、执行打包 mvn clean package 2、上传 dubbo-admin-develop/dubbo-admin-distribution/target /dubbo-admin-0.2.0-SNAPSHOT.jar 到服务器 3、在 dubbo-admin-0.2.0-SNAPSHOT.jar 同级目录新增 Dockerfile 文件 FROM openjdk:8-jre LABEL maintainer="dev@dubbo.apache.org" COPY dubbo-admin-0.2.0-SNAPSHOT.jar /app.jar ENTRYPOINT ["java","-XX:+UnlockExperimentalVMOptions","-XX:+UseCGroupMemoryLimitForHeap","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] EXPOSE 8080 4、创建镜像 docker build -t dubbo-admin:0.2.0-SNAPSHOT . 5、运行 docker run -p 8089:8080 -dit --name my_dubbo

Docker 部署 FreeSWITCH

别来无恙 提交于 2020-05-07 13:20:37
前言   Linux 上部署 FreeSWITCH 是一件比较麻烦的事情,用 Docker 部署相对方便且更容易运维。下面详述官方项目部署步骤。 容器公开以下端口: 5060/tcp 5060/udp 5080/tcp 5080/udp作为SIP信令端口。 5066/tcp 7443/tcp作为WebSocket信令端口。 8021/tcp作为事件套接字端口。 64535-65535/udp作为媒体端口。 部署步骤 一、克隆git 执行命令 git clone https://github.com/BetterVoice/freeswitch-container.git 得到一个名为 freeswitch-container 的文件夹 # Jenkins. FROM ubuntu: 16.04 MAINTAINER Thomas Quintana <thomas@bettervoice.com> # Enable the Ubuntu multiverse repository. RUN echo " deb http://us.archive.ubuntu.com/ubuntu/ trusty multiverse " >> /etc/apt/ source.list RUN echo " deb-src http://us.archive.ubuntu.com/ubuntu/