聚合文章列表
14 浏览

开启一个国际化项目

近期在重构我的开源项目iMap,想着要是能做成一个国际化的项目就好了,于是我在我的后端服务以及前端都引入了i18n后端配置我用的是阿里系的Egg.jsNode框架来提供后台服务,由于框架的开源插件中已经含有egg-i18n,本着不重复造轮子的心态,于是直接上手。首先打开config/config.default.js来设定i18n的配置项:exports.i18n={//默认中文defaultLocale:'zh-CN',////URL参数,默认'local'改为'lang'queryField:'lang',//cookie名称cookieField:'lang',//cookie时长cookieMaxAge:'1y',};其中,他们的彼此之间的权重是query>cookie>headers配置好config文件之后,需要在config文件夹中新增一个

vue.js 2018-01-24 发布
12 浏览

vue从入门到进阶:vue-router路由功能(九)

基本使用html:<scriptsrc="https://unpkg.com/vue/dist/vue.js"></script><scriptsrc="https://unpkg.com/vue-router/dist/vue-router.js"></script><divid="app"><h1>HelloApp!</h1><p><!--使用router-link组件来导航.--><!--通过传入`to`属性指定链接.--><!--<router-link>默认会被渲染成一个`<a>`标签--><router-linkto="/foo">GotoFoo</router-link><router-linkto="/bar">GotoBar

vue.js 2018-01-24 发布
11 浏览

vue从入门到进阶:Vuex状态管理(十)

Vuex是一个专为Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。在Vue之后引入vuex会进行自动安装:<scriptsrc="/path/to/vue.js"></script><scriptsrc="/path/to/vuex.js"></script>可以通过https://unpkg.com/vuex@2.0.0这样的方式指定特定的版本。NPM:npminstallvuex--saveState在Vue组件中获得Vuex状态constCounter={template:`<div>{{count}}</div>`,computed:{count(){returnthis.$store.state.count}}}mapState辅助函数当一个组件需要获

vue.js 2018-01-24 发布
AD 友情赞助
13 浏览

DevExpress v17.2新版亮点—ASP.NET篇(三)

用户界面套包DevExpressv17.2终于正式发布,本站将以连载的形式为大家介绍各版本新增内容。本文将介绍了DevExpressASP.NETv17.2的GridViewControl、ChartControl、Editors、HTMLEditor等新功能,快来下载试用新版本!SchedulerControlScheduler-增强自适应在此版本中,WebForms和MVCScheduler为各种屏幕分辨率提供了改进的支持,其中还包括重新设计自适应模式下的Appointment对话框的布局。AgendaView现在是完全自适应的(包括ViewSelector和ViewVisibleInterval元素)。AppointmentTooltipPresentation模式您现在可以指定appointmenttooltip模式-是否将工具提示表示为按钮或作为提示。增强ReminderDialogDevExpressScheduler的Reminders对话框已改进,该对话框现在提供详细

.Net 2018-01-24 发布
7 浏览

Vue系列(二):发送Ajax、JSONP请求、Vue生命周期及实例属性和方法、自定义指令与过渡

一、发送AJAX请求1.简介vue本身不支持发送AJAX请求,需要使用vue-resource、axios等插件实现axios是一个基于Promise的HTTP请求客户端,用来发送请求,也是vue2.0官方推荐的,同时不再对vue-resource进行更新和维护参考:GitHub上搜索axios,查看API文档2.使用axios发送AJAX请求2.1安装axios并引入npminstallaxios-S也可直接下载axios.min.js文件2.2基本用法axios([options])axios.get(url[,options]);传参方式:1.通过url传参2.通过params选项传参axios.post(url,data,[options]);axios默认发送数据时,数据格式是RequestPayload,并非我们常用的FormData格式,所以参数必须要以键值对形式传递,不能以json形式传参传参方式:

vue.js 2018-01-24 发布
21 浏览

基于angularJs的单页面应用seo优化及可抓取方案原理分析

公司使用angularJs(以下都是指ng1)框架做了互联网应用,之前没接触过seo,突然一天运营那边传来任务:要给网站做搜索引擎优化,需要研发支持。搜了下发现单页面应用做seo比较费劲,国内相关实践资料分享出来的也比较少,略懵,前后花了一番功夫总算完成了。在这里记录下来,做一个总结,也希望能够帮助在做类似工作的朋友少走一点弯路。还是建议需要seo的网站技术选型尽量不要使用angularreact一类的单页面框架。如果你和我一样网站做完了发现需要seo,那么往下看吧。如果各位已有更优的方案欢迎拍砖交流。单页面应用seo的困难在哪里?做seo必须了解爬虫工作的基本原理。搜索引擎能够搜到一个网页是因为对其做了索引,而在这之前需要爬虫抓取到网站页面存储为一个快照,快照的内容即页面的静态内容。一般来说,右键查看网页源代码看到的内容即爬虫所能抓取到的内容。爬虫拿到一个url后抓取其页面信息,查找页面中的a标签,拿到下一个url跳转地址,继续下一个页面抓取。seo的工作目的是增加搜索引擎对网站的索引量以及提升网页排名,传统的seo工作例如站内tdk的

Angular 2018-01-23 发布
AD 友情赞助
13 浏览

Javascript调试命令——你只会Console.log() ?

Javascript调试命令——你只会Console.log()?Console对象提供对浏览器控制台的接入(如:Firefox的WebConsole)。不同浏览器上它的工作方式是不一样的,但这里会介绍一些大都会提供的接口特性。Console对象可以在任何全局对象中访问,如Window,WorkerGlobalScope以及通过属性工作台提供的特殊定义。它被浏览器定义为Window.Console,也可被简单的Console调用。最常用的方法就是Console.log(),就是在控制台输出内容。刚开始学前端的时候看到大家都是用的Console.log(),几乎没有见过Console的其他用法,难道Console真的没有别的用法了?查了一下后发现Console还是非常强大的,至于为什么很少看到有人用可能是因为用过都删掉了吧。在此记录一下Console的其他用法。注意:因为Console对象提供对浏览器控制台的接入所以在不同浏览器中的支持及表现形式可能不太一样,但是调试内容只有我们开

JavaScript 2018-01-23 发布
22 浏览

Node.JS段点续传:Nginx配置文件分段下载功能实现

Html5提供了一个新的Range标签来实现文件的分段下载。在Node.JS中可以配置这个标签来实现文件的分段下载。Header标签请求RequestHeader:下载3744以后的文件内容range:bytes=3744-返回ResponseHeader:文件总长15522643个字节accept-ranges':'bytes'content-range':'bytes*/15522643'Nginx配置首先要配置Nginx支持range标签返回,很简单添加add_headerAccept-Rangesbytes;这一行即可server{listen80;server_nameadksdf.com;location~^/(img/|js/|css/|upload/|font/|fonts/|res/|icon){add_headerAccess-Control-Allow-Origin*;add_headerAccept-Rangesbytes;root/var

JavaScript 2018-01-23 发布
17 浏览

[译]: 理解 publish 和 share 操作符

登录[译]RxJS:理解publish和share操作符郑丰彧5hoursago原文链接:https://blog.angularindepth.com/rxjs-understanding-the-publish-and-share-operators-16ea2f446635本文为RxJS中文社区翻译文章,如需转载,请注明出处,谢谢合作!如果你也想和我们一起,翻译更多优质的RxJS文章以奉献给大家,请点击【这里】我经常会被问及publish操作符的相关问题:publish和share之间的区别是什么?如何导入refCount操作符?何时使用AsyncSubject?我们来解答这些问题,并让你了解到更多内容,首先从基础入手。多播的心智模型多播是一个术语,它用来描述由单个observable发出的每个通知会被多个观察者所接收的情况。一个observable是否具备多播的能力取决于它是热的还是冷的。热的和冷的observable的特征在于observable通知的生产者是在哪创

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

node.js-http模块深入理解

http模块主要用于搭建HTTP服务端和客户端,使用HTTP服务器或客户端功能都必须调用http模块。创建服务器varhttp=require(“http”);varurl=require(“url”);//创建服务器//http继承自tcpvarserver=http.createServer(function(req,res){varurlstr=req.url;//获取请求的路径varurlMethod=req.method;//获取请求的方法varurlObj=url.parse(urlstr,true);console.log(urlObj);console.log(urlMethod);res.end(“hello”);});server.listen(8080);对请求进行处理请求分为两种:get和post,get请求url地址带参数,req.url便能获取参数,而post请求便复杂一些。使用req.on()处理post请求。post请求方式:使

JavaScript 1900-01-01 发布
21 浏览

再谈express与koa的对比

这么说当然是没错的,但是当我们执行下面代码的时候可能会有那么一点小小的困惑:constconnect=require('connect')constapp=connect()app.use(functionm1(req,res,next){console.log('m1')next()console.log('m1end')})app.use(functionm2(req,res,next){console.log('m2')next()console.log('m2end')})app.use(functionm3(req,res,next){console.log('m3')res.end('hello')})app.listen(8080)当我们访问http://127.0.0.1:8080的时候,控制台会打印如下:m1m2m3m2endm1end这么个结果跟我们上面的模型似乎有点出入,不是说线性的吗,为什么next后面的代码还会继续执行?当然这个我们再之前已经有过结

JavaScript 2018-01-23 发布
23 浏览

Generator函数异步应用

转载请注明出处:Generator函数异步应用上一篇文章详细的介绍了Generator函数的语法,这篇文章来说一下如何使用Generator函数来实现异步编程。或许用Generator函数来实现异步会很少见,因为ECMAScript2016的async函数对Generator函数的流程控制做了一层封装,使得异步方案使用更加方便。但是呢,我个人认为学习async函数之前,有必要了解一下Generator如何实现异步,这样对于async函数的学习或许能给予一些帮助。文章目录知识点简单回顾异步任务的封装thunk函数实现流程控制Generator函数的自动流程控制co模块的自动流程控制知识点简单回顾在Generator函数语法解析篇的文章中有说到,Generator函数可以定义多个内部状态,同时也是遍历器对象生成函数。yield表达式可以定义多个内部状态,同时还具有暂停函数执行的功能。调用Generator函数的时候,不会立即执行,而是返回遍历器对象。遍历器对象的原型对象上具有next方法,可以通过next方法恢复函数的执行。每

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

node.js之express模块

一、简介Express是一个简洁而灵活的node.jsWeb应用框架,提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。使用Express可以快速地搭建一个完整功能的网站。二、安装与运行终端输入命令安装,这与其他模块一样sudonpminstallexpress运行并初始化expressvarexpress=require("express");varapp=express();//初始化三、核心功能路由引入一下模块,body-parser是post请求方式封装的模块,get请求不可用。varexpress=require("express");varapp=express();varquerystring=require("querystring");//只是post请求方式取参varbodyParser=require("body-parser");varapp=express();//引入bodyParserapp.use(bodyPa

JavaScript 1900-01-01 发布
17 浏览

java与Js交互

现在越来越多的app使用原生和H5混合开发了,可以减少开发周期。一、android调用JS代码。mWeb.loadUrl("javascript:upload_img('"+mPicUrl+"')")这是直接调用js的upload_img的方法。举个例子:js的代码如下:functioncallJS(){alert("Android调用了JS的callJS方法");}Android调用这个代码:mWeb.loadUrl("javascript:callJS()");二、js调用Android代码:首先webView需要设置:WebSettingswebSettings=mWebView.getSettings();//设置可以与Js交互的权限webSettings.setJavaScriptEnabled(true);//实例化Javascript对象finalJavaScriptInterfacemyJavaScriptInterface=newJavaScriptInterface(

JavaScript 2018-01-23 发布
16 浏览

ASP.NET没有魔法——ASP.NET OAuth、jwt、OpenID Connect

ASP.NET没有魔法——ASP.NETOAuth、jwt、OpenIDConnect上一篇文章介绍了OAuth2.0以及如何使用.Net来实现基于OAuth的身份验证,本文是对上一篇文章的补充,主要是介绍OAuth与Jwt以及OpenIDConnect之间的关系与区别。本文主要内容有:●Jwt简介●.Net的Jwt实现●OAuth与Jwt●.Net中使用JwtBearerToken实现OAuth身份验证●OAuth与OpenIDConnect注:本章内容源码下载:https://files.cnblogs.com/files/selimsong/OAuth2Demo_jwt.zipJwt简介Jwt(JsonWebToken)它是一种基于Json用于安全的信息传输标准,Jwt具有以下几个特点:●紧凑:Jwt由于是为Web准备的,所以就需要让数据尽可能小,能够在Url、Post参数或者HttpHeader中携带Jwt,同时由于数据小,所

.Net 2017-05-30 发布
21 浏览

MSSQL · 最佳实践 · SQL Server备份策略

摘要在上一期月报中我们分享了SQLServer三种常见的备份技术及工作方式,本期月报将分享如何充分利用三者的优点来制定SQLServer数据库的备份和还原策略以达到数据库快速灾难恢复能力。三个术语在详细介绍SQLServer的灾备策略之前,我们先简要介绍三个重要的术语:RTO(RecoveryTimeObjective)恢复时间目标,是指出现灾难后多长时间能成功恢复数据库,即企业可容许服务中断的最大时间长度。比如说灾难发生后一天内恢复成功,则RTO值就是二十四小时;RPO(RecoveryPointObjective)恢复点目标,是指服务恢复后,恢复回来的数据所对应的最新时间点。比如企业每天凌晨零晨进行完全备份一次,那么这个全备恢复回来的系统数据只会是最近灾难发生当天那个凌晨零时的资料;ERT(EstimatedRecoveryTime)预估恢复时间,是指根据备份链路的长度和备份文件的大小以及设备的还原效率来估算的服务恢复时间。从

SQL Server 2017-12-17 发布
23 浏览

深度学习js与安卓的交互以及WebView的那些坑

前言:随着市场需求的不断变化,原生安卓已经无法满足客户的需要了,现在很多app都在使用Android和h5的交互实现某些功能,比如商品详情页,文章详情页面,商品点评页面,还有某些复杂的展示页面等等,设置登陆页面都有可能是和js交互做到的。通过交互可以很快速的达到效果,原生的安卓去做的话就会很麻烦。今天我就简单讲一下使用WebView做到js代码和安卓的交互,通过一个小demo教你学会js和Android的交互。##首先来看看这篇博客要讲解内容的大纲(这个图是我自己画的,网上找不到的)⇒一、WebView的基本使用WebView是一个基于webkit引擎、展现web页面的控件。Webview在低版本和高版本采用了不同的webkit版本内核,4.4后直接使用了Chrome。WebView控件功能强大,除了具有一般View的属性和设置外,还可以对url请求、页面加载**(直接使用html文件**(网络上或本地assets中)作布局**)、渲染Wb页面、页面交互(和js交互)**进行强大的处理。(一)常用方法(1)WebView的状

JavaScript 2018-01-23 发布
18 浏览

javascript 之原型、原型链-14

原型原型是一个对象,每个函数对象(在javascript之对象中说过函数也是对象)都有一个属性(prototype)指向这个对象--原型对象,这个对象的作用是让所有对象实例共享原型对象中的属性、方法。即我们可以把公共的属性、方法写在这个原型中,所以说js中的继承是基于原型实现的;构造函数、原型、实例每个构造函数都有一个原型对象,原型对象包含一个指针指向构造函数,而实例包含一个指向原型对象的内部指针;1functionPerson(name,age){2this.name=name;3this.age=age;4}5console.dir(Person);如图:Person有个属性prototype指向原型对象原型对象通过constructor指向函数对象prototype函数才具有的属性,指向构造函数的原型对象;JavaScript中的对象,都有一个内置属性[[Prototype]](在ES5之前没有标准的方法访问这个内置属性,但是大

JavaScript 2018-01-23 发布
14 浏览

LCS 算法:Javascript 最长公共子序列

原文出处:司徒正美最长公共子序列(LongestCommonSubsequenceLCS)是从给定的两个序列X和Y中取出尽可能多的一部分字符,按照它们在原序列排列的先后次序排列得到。LCS问题的算法用途广泛,如在软件不同版本的管理中,用LCS算法找到新旧版本的异同处;在软件测试中,用LCS算法对录制和回放的序列进行比较,在基因工程领域,用LCS算法检查患者DNA连与键康DNA链的异同;在防抄袭系统中,用LCS算法检查论文的抄袭率。LCS算法也可以用于程序代码相似度度量,人体运行的序列检索,视频段匹配等方面,所以对LCS算法进行研究具有很高的应用价值。基本概念子序列(subsequence):一个特定序列的子序列就是将给定序列中零个或多个元素去掉后得到的结果(不改变元素间相对次序)。例如序列的子序列有:、、等。公共子序列(commonsubsequence):给定序列X和Y,序列Z是X的子序列,也是Y的子序列,则Z是X和Y的公共子序列。例如X=[A,B,C,B,D,A,B],Y=[B,D,C,A,B,A[,那么序列Z=[B,

JavaScript 2018-01-23 发布
17 浏览

Vue 模板编译

首发于Vue必知必会写文章登录Vue模板编译李斌4hoursagoVue的template是如何编译成真正的HTML并做到双向绑定等等特殊功能的呢?以往这个问题对我来说一直是个黑洞。最近看了Vue的源码,对模板编译的整个过程的脉络有了更为清晰的了解。先甩一张图在这张图中,我们可以看到Vue的模板编译是在$mount的过程中进行的,在$mount的时候执行了compile这个方法来将template里的内容转换成真正的HTML代码。complie之后执行的事情也蛮重要的,这个我们留到最后再说。complie最终生成render函数,等待调用。这个方法分为三步:parse函数解析templateoptimize函数优化静态内容generate函数创建render函数字符串parse解析在了解parse的过程之前,我们需要了解AST,AST的全称是AbstractSyntaxTree,也就是所谓抽象语法树,用来表示代码的数据结构。在Vue中我把它理解为嵌套的

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