聚合文章列表
21 浏览

jQuery学习(第二天)

jQuery 1900-01-01 发布
16 浏览

YOU MIGHT NOT NEED JQUERY

在早期,JQuery在浏览器的兼容上为我们解决了痛点,但是随着浏览器/JavaScript的革新,我们对于浏览器的兼容要求越来越宽松,现在我们基本上兼容IE8/IE9就ok了。很多Jquery实现的功能,我们使用原生js实现起来也不是很麻烦。本文转载YOUMIGHTNOTNEEDJQUERY,主要为了方便自己查阅AjaxJSONJQuery$.getJSON('/my/url',function(data){})IE9+varrequest=newXMLHttpRequest();request.open('GET','/my/url',true);request.onload=function(){if(request.status>=200&&request.status<400){//successvardata=JSON.parse(request.responseText);}else{//error}};

jQuery 2018-01-15 发布
30 浏览

【ASP.NET Core】准备工作:在 Windows 10 上配置 Linux 子系统

ASP.NETCore其实比传统的ASP.NET要简单很多,而且也灵活很多,并且可以跨平台独立运行。在Windows平台上,我们只要在安装VisualStudio的时候选择跨平台的.NETCore开发即可,基本无需什么配置就能测试ASP.NETCore应用,连IIS你也可以不启用(当然你也可以启用的),因为使用dotnet命令就能直接运行。当然了,在MacOS和Linux上也是通过dotnet命令运行的。一般来说,在Windows平台上,你的ASP.NETCore应用如果能顺利运行,到其他平台也是没问题。不过,能跨平台测试一下是更好的。不管是你想学习Linux,还是想在Linux下测试Core应用,传统做法可能你会想到在虚拟机里面安装。然而虚拟机比较麻烦,性能消耗也大,还不如直接启用Windows10下面的Linux子系统,不仅节约开销,而且也可以直接访问Windows文件目录,操作起来更直爽。大伙伴们可能会说:我从来没用过Linux,咋办?没事

.Net 2018-01-15 发布
AD 友情赞助
37 浏览

windows第七层负载均衡--基于IIS的ARR负载均衡

载均衡有很多种方法,有硬件负载均衡,软件负载均衡,还可以从域名解析下手。不过,今天只讲软件负载均衡软件负载均衡一般分两种,从网络协议来讲(tcp/ip),主要集中在第四层和第七层进行负载均衡。第四层就是基于IP进行负载均衡。后面还有一篇文章讲这个。第七层就是应用层。比如各种的WEB服务器。今天就讲讲IIS的负载均衡。第七层的Web负载均衡,很多web服务器都支持,比如IIS,Nginx,apache等。现在主要讲一下windosw下IIS如何使用负载均衡IIS使用ARR反向代理,实现负载均衡什么是正向代理?代理服务器大家可能听说过,比如我们说的“科学上网”。就是使用代理服务器,请求经过代理服务器转到目的服务器。这是一个正向代理。用户知道自己使用代理,并且充许用户隐藏客户端自身。什么是反向代理?请求同样经过代理服务器转到目的服务器,目的服务器返回给代理服器,代理返回给客户端。不同的时候,客户并不知道,访问的是一个代理服务器。客户认为他在访问目的服务器。两者的区别基本在于,正向代理是发生在客户端。反向代理

.Net 2017-06-27 发布
14 浏览

前端自动化测试工具介绍--karma+jasmine框架

在开发的过程中,除了代码本身,测试也是重要的一环。大体来说,测试分为以下几种类型:单元测试功能测试性能测试安全测试对于普通开发者而言,单元测试和功能测试是最常见的两种测试方式,本系列文章要介绍的几个工具是针对这两个方面的。单元测试是对某一块独立的业务模块进行测试,可以是一个小功能,甚至一个函数。在前端开发中,我们可以选用Karma进行代码的单元测试,这个工具十分强大,它集成了像Jasmine(基于BDD的测试框架),PhantomJS(无界面的浏览器)这些测试套件。还有一些其他有用的功能,比如生成代码覆盖率的报告等。本文只介绍Karma的基本使用。单元测试工具Karma要使用Karma对代码进行单元测试,首先需要安装一系列的相关插件。我们来新建一个名为myKarmDemo的目录,并安装相关的插件:npminstallkarma-cli-gnpminstallkarmajasmine-corekarma-jasminekarma-phantomjs-launcher-D接下来对我们的工程进行初

JavaScript 1900-01-01 发布
22 浏览

使用Redis keyspace notifications来实现延迟任务(NodeJS版)

1.使用场景在很多系统中,特别是电商系统常常存在需要执行延迟任务。例如一个待支付订单,需要在30分钟后自动关闭。虽然有很多方式可以实现,比如说Job等,这里主要介绍利用Redis的新特性keyspacenotifications来实现。2.基础知识重点!!!Redis2.8.0版本开始支持keyspacenotifications。如果你的Redis版本太低,可以洗洗睡了……如果你还不了解Redis的Pub/Sub,强烈建议你先阅读该篇文章:Redis发布与订阅接下来说说我们的主角:keyspacenotificationskeyspacenotifications默认是关闭状态,开启则需要修改redis.conf文件或通过CONFIGSET来开启或关闭该功能。这里我们使用CONFIGSET来开启:$redis-cliconfigsetnotify-keyspace-eventsEx这里有人会问了,Ex是什么意思呢?这是notify-keyspace-events的参数,完整的参

JavaScript 2018-01-15 发布
AD 友情赞助
23 浏览

实现一个符合 Promise/A+ 规范的 MyPromise

因为Promise是在同步代码执行完成后再执行,所以要把Mypromise的执行方法resolve和reject放在异步队列里functionMyPromise(executor){if(typeofexecutor!=='function'){thrownewTypeError('Promiseresolver'+executor+'isnotafunction');}letself=this;this.status='pending';this.value=undefined;this.reason=undefined;this.onFulfilledCallbacks=[];this.onRejectedCallbacks=[];functionresolve(value){if(valueinstanceofMyPromise){returnvalue.then(resolve,reject);}if(self

JavaScript 2018-01-15 发布
17 浏览

Webpack原理-编写Plugin

Webpack通过Plugin机制让其更加灵活,以适应各种应用场景。在Webpack运行的生命周期中会广播出许多事件,Plugin可以监听这些事件,在合适的时机通过Webpack提供的API改变输出结果。一个最基础的Plugin的代码是这样的:classBasicPlugin{//在构造函数中获取用户给该插件传入的配置constructor(options){}//Webpack会调用BasicPlugin实例的apply方法给插件实例传入compiler对象apply(compiler){compiler.plugin('compilation',function(compilation){})}}//导出Pluginmodule.exports=BasicPlugin;在使用这个Plugin时,相关配置代码如下:constBasicPlugin=require('./BasicPlugin.js');module.export={plugins:[newBa

JavaScript 2018-01-15 发布
23 浏览

iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 解析JSON

如何设置JSON格式伟大的武术家——李小龙先生——说过这样一段话:Emptyyourmind,Beformless,shapelesslikewater.Youputwaterinacup,itbecomesthecup.Youputwaterinabottle,itbecomesthebottle.Youputwaterinateapot,itbecomestheteapot.Watercanfloworcrash.翻译成中文意思就是:清空你的思想,像水一样无形。你将水倒入水杯,水就是水杯的形状。你将水倒入瓶子,水就是瓶子的形状。你将水倒入茶壶,水就是茶壶的形状。你看,水会流动,也会冲击。在数据传输过程中,传输的资源都可以称之为『数据』,而『数据』之所以展示出不同的形态,是因为我们已经设置了它的格式。传输的数据像是『水』一样,没有任何的格式和形状。我们的设置像是『器』一样,赋予它指定的形态。所以,我们只需要设置把数据挂载在响应体body上,同

JavaScript 2018-01-15 发布
AD 友情赞助
15 浏览

JavaScript 知识点串烧——对象

说到JavaScript,我们就总是会提到对象,说到对象我们就会提到原型继承,这是我们接触JavaScript时经常会遇到的,尤其是在面试中我们也是会经常遇到。一般知道对象,理解原型看起来是足够够了,但是有一些小细节的问题,我想我们还是要注意的,下面我们就来说说。对象的常见创建方法newObject()实现对象的继承,继承自Object,这种方法现在不常用letobj=newObject()字面量对象定义一个非继承的对象letobj={a:1,b:2,c:3}objet.create()实现一个可以继承自任意对象的对象letobj=Object.create({a:1,b:2,c:3});letobj2=Object.create(null);//和{}一样构造函数它是实现对象实例的基础functionFunc(name){this.name=name;}letobj=newFunc('lzb')构造函数+prototype实现一个自定义的可方法和属性共享的对象

JavaScript 2018-01-15 发布
17 浏览

Node.js design pattern : module

Node.jsdesignpattern一书中对Node的Module模块机制这一块,我觉得讲的挺透彻和易懂,这里根据自己理解做下总结。本文转发自本人github。loadModule自定义一个简单的模块加载方法loadModule,基本思路跟nodejs一致,将加载的模块内容包裹在一个函数里面实现变量的隔离,保证模块内的变量都是私有的。functionloadModule(filename,module,require){constwrappedSrc=`(function(module,exports,require){${fs.readFileSync(filename,'utf8')}})(module,module.exports,require);`;eval(wrappedSrc);}这个例子通过eval对wrappedSrc进行计算,即通过eval函数处理该字符串脚本。因为这里要把(function(module,exports,require){这串东西和f

JavaScript 2018-01-15 发布
14 浏览

浅谈Promise之按照Promise/A+规范实现Promise类

在需要多个操作的时候,会导致多个回调函数嵌套,导致代码不够直观,就是常说的回调地狱,通常通过promise来解决Promise本意是承诺,在程序中的意思就是承诺我过一段时间后会给你一个结果。什么时候会用到过一段时间?答案是异步操作,异步是指可能比较长时间才有结果的才做,例如网络请求、读取本地文件等构造函数初始化逻辑constPENDING='pending';//初始态constFULFILLED='fulfilled';//初始态constREJECTED='rejected';//初始态letself=this;//先缓存当前promise实例self.status=PENDING;//设置状态self.onResolvedCallbacks=[];//定义存放成功的回调的数组self.onRejectedCallbacks=[];//定义存放失败回调的数组executor执行器,包含两个参数,分别是resolve解决和reject拒绝,newPromise这个executor就

JavaScript 2018-01-15 发布
AD 友情赞助
19 浏览

前端数据监控到底在监控什么?

按触发顺序排列所有属性:(更详细标准的解释请参看:W3CEditor'sDraft)navigationStart:在同一个浏览器上下文中,前一个网页(与当前页面不一定同域)unload的时间戳,如果无前一个网页unload,则与fetchStart值相等unloadEventStart:前一个网页(与当前页面同域)unload的时间戳,如果无前一个网页unload或者前一个网页与当前页面不同域,则值为0unloadEventEnd:和unloadEventStart相对应,返回前一个网页unload事件绑定的回调函数执行完毕的时间戳redirectStart:第一个HTTP重定向发生时的时间。有跳转且是同域名内的重定向才算,否则值为0redirectEnd:最后一个HTTP重定向完成时的时间。有跳转且是同域名内的重定向才算,否则值为0fetchStart:浏览器准备好使用HTTP请求抓取文档的时间,这发生在检查本地缓存之前domainLookupStart:DNS域名

JavaScript 2018-01-15 发布
20 浏览

ios WebViewJavascriptBridge源码解析

image.png这个库的还是比较精简单的,当前webView是用UIWebView那么我只需要引入WebViewJavascriptBridge,相应的WKWebView则需要用到WKWebViewJavascriptBridge这个桥接主要是介于js和app间我们先来看js要怎么做我们需要copy这段代码到js里至于为什么要这么做,后文会提到functionsetupWebViewJavascriptBridge(callback){if(window.WebViewJavascriptBridge){returncallback(WebViewJavascriptBridge);}if(window.WVJBCallbacks){returnwindow.WVJBCallbacks.push(callback);}window.WVJBCallbacks=[callback];varWVJBIframe=document.createElement('iframe');WVJBIfr

JavaScript 1900-01-01 发布
25 浏览

cquery USR优化和分层diff

cquery最近改动原作者创建了organization,我据此把几个插件分离了:emacs-cquery和vscode-cquery,等候吉日再来一次gitfilter-branch--index-filter减小主repo的体积检索Doxygen注释标记,及可选的普通(行注释//块注释/**/)。在initializationoptions里配置"enableComments":2,cache文件(cacheDirectory目录下的文件)原来为JSON,现在支持序列化成MessagePack,请在initializationoptions里配置**“cacheFormat”:“msgpack”,`感谢bennyyip添加了archlinuxcn/cquery-git,ArchLinux用户要体验cquery更加方便了光标处符号的类型信息改进了,根据romix的提议,对于函数,找出函数类型和返回值类型字串形式第一个不同的位置,多半是插入函数名的位置。但参数名插入仍然困难,都怪C的inside-out类型

JavaScript 2018-01-15 发布
24 浏览

vue.js的

使用插槽分发内容在封装vue组件的时候,很多时候就不得不使用到vue的一个内置组件<slot>。slot是插槽的意思,顾名思义,这个<slot>组件的意义是预留一个区域,让其中的DOM结构可以由调用它的组件来渲染。假设现在有一个people组件,结构如下:<template><div><strongclass="tip">*填写的内容必须真实</strong><label>姓名</label><inputtype="text"name="name"><label>性别</label><inputtype="text"name="sex"><button>确定</button></div></template>当我们注册这个组件之后,就可以在其他组件中这样子使用

vue.js 2018-01-14 发布
20 浏览

实例化vue发生了什么?(详解vue生命周期)

实例化vue发生了什么?(详解vue生命周期)本文将对vue的生命周期进行详细的讲解,让你了解一个vue实例的诞生都经历了什么~我在Github上建立了一个存放vue笔记的仓库,以后会陆续更新一些知识和项目中遇到的坑,有兴趣的同学可以去看看哈(欢迎star)!传送门实例化一个Vueconstapp=newVue({el:"#app',data:{message:'hello,lifePeriod'},methods:{init(){console.log('这是一个方法!')}}})1.触发beforeCreate钩子函数组件实例刚被创建,此时无法访问到el属性和data属性等..beforeCreate(){console.log(`元素:${this.$el}`)//undefinedconsole.log(`属性message:${this.message}`)//undefined

vue.js 2018-01-15 发布
23 浏览

2018 最值得关注的 JavaScript 趋势

如果你在过去的2017年有过一连串的规划,那么这篇文章适合你。2017年发生了很多事情,我们一直在X-Team中仔细观察,并想着如何让2018更加富有激情和创新。你也可以利用这篇文章来帮助你完善2018的计划或者让你做出更有创意的计划。Reactvs.Vue.js我们直接上好东西吧:不是有很多人认为Vue或许会成为React的一大竞争敌手,但是今年想要无视Vue是不可能的,在开发者的炒作宣传方面甚至令Angular黯然失色。我们展望随着Vue的大肆宣传,在2018年即将展开一场为期2年的激烈竞争。React仍然有着全球最富有公司之一的财政支持,更不用说他们还有极其有才的维护人员。但是Vue做了下面这些让开发者真心高兴的事:Vue轻量,容易学习,有着令人难以置信的工具,有很棒的状态管理和路由内置等。Vue的社区当然还没有React那么大,但是社区的增长是基于核心团队是否拥有优秀的(团队)代表并倾听社区(建议和意见)(两者都已做到位)。

JavaScript 2018-01-15 发布
29 浏览

TypeScript + Vue系列(二): 引入vuex + vue-class

前言在TypeScript+Vue系列(一):新项目配置中,我们已经初始化了一个TypeScript+Vue的模板.但是对于一个大型的Vue项目来说,Vuex的使用是必不可少的.所以这一节我们将来展示一下如何在Vue+TypeSciprt的项目中中引入Vuex.如果想在Vuex中写TypeScript,需要借助vuex-class.下载依赖在命令行下输入以下内容npminstallvuexvuex-class--save添加Couter.vue在src/components/下新增Couter.vue文件,用于展示项目中引入了Vuex的效果初始化Couter.vue单文件<template><divclass="counter"><h1>Couter.vue</h1></div></template><script>importVue

vue.js 2018-01-15 发布
16 浏览

vue.js组件通信

由于vue.js拥有多组件的特点,所以其中会涉及到组件之间的通信,在学习vue.js两周当中,通信在整个系统开发是比较重要的,所以我把我两周以来学习到的相关知识给大家分享一下!相关的知识在官网中查询这张图用文字表达就是:父组件向子组件发送信息运用props子组件向父组件发送信息运用emit相关实例:一、父组件向子组件发送信息操作:当父组件文本框中输入值,子组件接收到的值也会改变,因为使用了双向绑定,如下图所示子组件接收值:这样就完成了父组件向子组件发送值,props中还有许多操作,比如将传送的类型从数组改为对象,用于限制数据类型等功能补充:限制数据类型由于接收值类型应该为Number类型,但是我们传送的是String,所以二、子组件向父组件发送信息这个操作与上一个通信方式较复杂一丢丢,首先需要认识一个方法,相关概念查询官网api就可以知道,这里不做太多解释,其中vm代表的是当前实例,在当前实例当中可以运用this,或者letvm=this当在子组件中点击emit按钮,就会将文本框的值发送给父组件根

vue.js 2018-01-15 发布
AD 友情赞助