一切福田,不離方寸,從心而覓,感無不通。

js判断对象是否为空对象的几种方法

1.将json对象转化为json字符串,再判断该字符串是否为"{}" var data = {}; var b = (JSON.stringify(data) == "{}"); alert(b);//true 2.for in 循环判断 var obj = {}; var b = function() { for(var key in obj) { return false; } return true; } alert(b());//true 3.jquery的isEmptyObject方法 此方法是jquery将2方法(for in)进行封装,使用时需要依赖jquery var data = {}; var b = $.isEmptyObject(data); alert(b);//true 4.Object.getOwnPropertyNames()方法 此方法是使用Object对象的getOwnPropertyNames方法,获取到对象中的属性名,存到一个数组中,返回数组对象,我们可以通过判断数组的length来判断此对象是否为空 注意:此方法不兼容ie8,其余浏览器没有测试 var data = {}; var arr = Object.getOwnPropertyNames(data); // Object.keys(objTest).length alert(arr.length == 0);//true   5.使用ES6的Object.keys()方法 与4方法类似,是ES6的新方法, 返回值也是对象中属性名组成的数组 var data = {}; var arr = Object.keys(data); alert(arr.length == 0);//true   from:https://www.cnblogs.com/jpfss/p/9105119.html

龙生   16 Jun 2020
View Details

forEach()里面使用异步函数,那如何等所有的异步函数都执行完再 进行下一步

两种方法 方法一

  方法二

  from:https://www.cnblogs.com/ttjm/p/13065240.html

龙生   15 Jun 2020
View Details

ExtJs4发送同步请求的store

ExtJs的store默认是异步的,但有时候我们必须要发送同步请求才能满足需求,比如在多线程中,要实现同步很简单,只需继承Ext.data.proxy.Ajax,重写的同步类如下:

使用的时候,只需修改代理即可,async:false表示同步,true为异步:

  from:https://my.oschina.net/wangdaoliang/blog/776567

龙生   11 Jun 2020
View Details

CentOS7 SpringBoot 注册服务

1.服务配置文件

2.启动服务

  参考: https://blog.csdn.net/weixin_37490221/article/details/80758276

龙生   10 Jun 2020
View Details

linux中启动 java -jar 后台运行程序

直接用java -jar xxx.jar,当退出或关闭shell时,程序就会停止掉。以下方法可让jar运行后一直在后台运行。 方法一 java -jar xxx.jar & 说明: 在末尾加入 & 符号   方法二 (1)执行java -jar xxx.jar后 (2)ctrl+z 退出到控制台,执行 bg (3)exit 完成以上3步,退出SHELL后,jar服务一直在后台运行。   方法三 nohup java -jar xxxx.jar & 将java -jar xxxx.jar 加入  nohup   &中间,也可以实现   from:https://www.cnblogs.com/zsg88/p/9473843.html

龙生   10 Jun 2020
View Details

win10 设置系统默认编码为utf-8

win10系统支持默认编码修改.。 好处: 1.解决由utf8引起的cmd,powershell等乱码问题 2.Visual Studio 2017(其他版本没试过) 新建文件则默认为utf8 3.其他 可能的坏处: 上古版本的第三方应用软件可能会出现乱码。 由于此设置,微软官方特别说明为【beta版】(截至时间2018年10月3日),可能会引起其他未知问题,请充分考虑后再决定是否设置。 工具/原料 win10系统 方法/步骤 在小娜中搜索地区,最佳匹配中会显示【更改国家或地区】的系统设置,双击打开。 在打开的设置中点击右上角的【管理语言设置】。 然后会打开一个【区域】的窗口设置,然后点击左上角的【管理】标签。 标签切换以后,点击【更改系统区域设置】。这个需要管理员权限才能操作。 然后回打开一个【区域设置】的小窗口,有个【beta版:使用Unicode UTF-8 提供全球语言支持】的选项,打上勾,点击确定。 然后会出现一个提示【现在重新启动】的窗口,点击【现在重新启动】按钮即可。 from:https://jingyan.baidu.com/article/25648fc1471e6a9191fd002e.html

龙生   10 Jun 2020
View Details

Asp.net Core 跨域配置

一般情况WebApi都是跨域请求,没有设置跨域一般会报以下错误

ASP.net Core 跨域有两种,全局和区域 全局跨域: 打开Startup.cs文件.在ConfigureServices方法中添加以下代码 1.配置跨域处理,允许所有来源:

2.允许一个或多个具体来源:

以上两种按需求选择一种即可. Configure方法中添加以下代码

 局部跨域第一种用法: 1.ConfigureServices方法不变,删去Configure中的app.UseCors()方法 2.在Controller顶部或者Action方法顶部加上[EnableCors("自定义的跨域策略名称")]特性,例如

以上就可实现指定某个controller或者action跨域 禁止跨域: 禁止跨域在Controller或者Action加上[DisableCors]特性即可禁止跨域

  参考: https://blog.johnwu.cc/article/asp-net-core-cors.html?from=singlemessage&isappinstalled=0 https://docs.microsoft.com/en-us/aspnet/core/security/cors http://www.cnblogs.com/tianma3798/p/6920704.html   from:https://www.cnblogs.com/xiaoliangge/p/7650465.html

龙生   10 Jun 2020
View Details

promise

promise是什么? 1、主要用于异步计算 2、可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果 3、可以在对象之间传递和操作promise,帮助我们处理队列 为什么会有promise? 为了避免界面冻结(任务) 同步:假设你去了一家饭店,找个位置,叫来服务员,这个时候服务员对你说,对不起我是“同步”服务员,我要服务完这张桌子才能招呼你。那桌客人明明已经吃上了,你只是想要个菜单,这么小的动作,服务员却要你等到别人的一个大动作完成之后,才能再来招呼你,这个便是同步的问题:也就是“顺序交付的工作1234,必须按照1234的顺序完成”。 异步:则是将耗时很长的A交付的工作交给系统之后,就去继续做B交付的工作,。等到系统完成了前面的工作之后,再通过回调或者事件,继续做A剩下的工作。 AB工作的完成顺序,和交付他们的时间顺序无关,所以叫“异步”。 异步操作的常见语法 事件监听

  回调

  有了nodeJS之后…对异步的依赖进一步加剧了 大家都知道在nodeJS出来之前PHP、Java、python等后台语言已经很成熟了,nodejs要想能够有自己的一片天,那就得拿出点自己的绝活: 无阻塞高并发,是nodeJS的招牌,要达到无阻塞高并发异步是其基本保障 举例:查询数据从数据库,PHP第一个任务查询数据,后面有了新任务,那么后面任务会被挂起排队;而nodeJS是第一个任务挂起交给数据库去跑,然后去接待第二个任务交给对应的系统组件去处理挂起,接着去接待第三个任务…那这样子的处理必然要依赖于异步操作 异步回调的问题: 之前处理异步是通过纯粹的回调函数的形式进行处理 很容易进入到回调地狱中,剥夺了函数return的能力 问题可以解决,但是难以读懂,维护困难 稍有不慎就会踏入回调地狱 – 嵌套层次深,不好维护 回调地狱 一般情况我们一次性调用API就可以完成请求。 有些情况需要多次调用服务器API,就会形成一个链式调用,比如为了完成一个功能,我们需要调用API1、API2、API3,依次按照顺序进行调用,这个时候就会出现回调地狱的问题 promise promise是一个对象,对象和函数的区别就是对象可以保存状态,函数不可以(闭包除外) 并未剥夺函数return的能力,因此无需层层传递callback,进行回调获取数据 代码风格,容易理解,便于维护 多个异步等待合并便于解决 promise详解

  resolve作用是,将Promise对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去; reject作用是,将Promise对象的状态从“未完成”变为“失败”(即从 pending 变为 rejected),在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。 promise有三个状态: 1、pending[待定]初始状态 2、fulfilled[实现]操作成功 3、rejected[被否决]操作失败 当promise状态发生改变,就会触发then()里的响应函数处理后续步骤; promise状态一经改变,不会再变。 Promise对象的状态改变,只有两种可能: 从pending变为fulfilled 从pending变为rejected。 这两种情况只要发生,状态就凝固了,不会再变了。 最简单示例:

  分两次,顺序执行

  promise完成后then()

  结论:promise作为队列最为重要的特性,我们在任何一个地方生成了一个promise队列之后,我们可以把他作为一个变量传递到其他地方。 假如在.then()的函数里面不返回新的promise,会怎样? .then() 1、接收两个函数作为参数,分别代表fulfilled(成功)和rejected(失败) 2、.then()返回一个新的Promise实例,所以它可以链式调用 3、当前面的Promise状态改变时,.then()根据其最终状态,选择特定的状态响应函数执行 4、状态响应函数可以返回新的promise,或其他值,不返回值也可以我们可以认为它返回了一个null; 5、如果返回新的promise,那么下一级.then()会在新的promise状态改变之后执行 6、如果返回其他任何值,则会立即执行下一级.then() .then()里面有.then()的情况 1、因为.then()返回的还是Promise实例 2、会等里面的then()执行完,再执行外面的 then嵌套 对于我们来说,此时最好将其展开,也是一样的结果,而且会更好读: 展开增加可读性 错误处理 Promise会自动捕获内部异常,并交给rejected响应函数处理。 第一种错误处理 第一种错误处理 第二种错误处理 第二种错误处理 错误处理两种做法: 第一种:reject('错误信息').then(() […]

龙生   09 Jun 2020
View Details

component:(resolve) => require是什么意思?

  这是异步加载组件,当你访问 / ,才会加载 home.vue。 路由懒加载的一种写法 也可以用import

  vue-router中,require代替import解决vue项目首页加载时间过久的问题 vue的路由配置文件(routers.js),一般使用import引入的写法,当项目打包时路由里的所有component都会打包在一个js中,在项目刚进入首页的时候,就会加载所有的组件,所以导致首页加载较慢, 而用require会将component分别打包成不同的js,按需加载,访问此路由时才会加载这个js,所以就避免进入首页时加载内容过多。 require: 运行时调用,理论上可以运用在代码的任何地方, import:编译时调用,必须放在文件开头 如果使用import方式,还需要安装一个插件 https://blog.csdn.net/hong10086/article/details/89684772 作者:凤箫之舞 链接:https://www.jianshu.com/p/487a600824af 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

龙生   09 Jun 2020
View Details

Docker CE 镜像源站

Docker CE 镜像源站 使用官方安装脚本自动安装 (仅适用于公网环境)

  手动安装帮助 (阿里云ECS可以通过内网安装,见注释部分内容) Ubuntu 14.04 16.04 (使用apt-get进行安装)

  CentOS 7 (使用yum进行安装)

  安装校验

  参考资料 其他关于旧版本Docker卸载以及测试开发版本Docker安装的帮助,可以参考官方文档的说明进行安装 from:https://yq.aliyun.com/articles/110806?spm=5176.8351553.0.0.35501991rH2jyp

龙生   08 Jun 2020
View Details