DistChen


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于
DistChen

JSONP原理

发表于 2017-01-18  |  2017-03-31   |   分类于 web   |    条

jsonp的工作原理,归根结底一句话:远程库可调用本地库或另一远程库中的方法。它不是一种数据格式,更不是一种协议,仅仅只是一种数据调用方式。

当前端调用后台服务时,只有同时满足下列三种情况之一,才属于同域:

  • 相同协议
  • 相同域名
  • 相同端口

跨域调用服务时,如果服务器没有返回相应的响应头信息或者特殊处理,通过ajax的方式无法取到数据,往往会报如下的错误:

阅读全文 »
DistChen

以http形式调用Kettle服务

发表于 2016-12-14  |  2017-04-01   |   分类于 Kettle   |    条

在Kettle中创建好的Transformation、Jobs除了可以利用Spoon工具来执行外,还可以有其它的执行方式,如下:

  • 命令行调用
  • java 调用
  • 服务调用

这里就简单介绍下如何以服务的形式来访问、执行配置好的Transformation、Jobs。这里要利用Carte工具,我们使用kettle来搭建集群的时候肯定要用到此工具的。

阅读全文 »
DistChen

webpack-dev-server无法自动刷新的问题

发表于 2016-12-05  |  2016-12-05   |   分类于 webpack   |    条

webpack是一个很好用的模块加载及前端构建工具,我在学习相关知识的过程中被其给深深的吸引了。

当我使用其自动刷新及模块热替换时,总是无法成功。后来没办法了,去看官方文档(working-with-editors-ides-supporting-safe-write)才知道问题出在哪:

阅读全文 »
DistChen

Nodejs 代码"加密"

发表于 2016-11-30  |  2016-11-30   |   分类于 Nodejs   |    条

对于喜欢编程,爱折腾的人来说,使用nodejs搭建后台是一件很有意思的事情:所有的东西从头到尾都是自己来写。当然,你可以使用express 、koa这样的工具来简化你的工作,这是另一回事。如果你或者你们公司尝试打算转nodejs,那么不得不考虑的一件事情就是源代码加密的问题。因为一旦使用nodejs,这就意味着所有的代码都是明文了。

那有没有办法对源码加密使用呢?当然有,先上代码!很简单,就三个文件:

阅读全文 »
DistChen

Java8-函数式接口

发表于 2016-11-22  |  2017-07-03   |   分类于 java   |    条

函数式接口

函数式接口(以下简称FI)的定义其实很简单:任何接口,如果只包含唯一一个方法(默认和静态方法除外),那么它就是一个FI。为了让编译器帮助我们确保一个接口满足FI的要求,Java8提供了@FunctionalInterface注解。虽然这个注解的使用不是强制性的,但是使用它的好处是让此接口的目的更加明确,同时编译器也会对代码进行检查,来确保被该注解标注的接口的使用没有语法错误。Runnable接口就是一个FI,下面是它的源代码:

1
2
3
4
@FunctionalInterface
public interface Runnable {
public abstract void run();
}

下面这些示例也属于函数式接口:

1
2
3
4
@FunctionalInterface
public interface Demo {
void run(String msg);
}
阅读全文 »
DistChen

DDoc.js-JS生成word文档

发表于 2016-11-16  |  2016-11-16   |   分类于 office   |    条

项目地址:https://github.com/DistChen/DDoc.js
Demo :https://distchen.github.io/DDoc.js/

前不久因为项目的一些需求,琢磨了下如何利用 JS 来生成 word 文档,并可以往文档中插入一些基本的元素:段落、标题、列表、表格、图片等,并给这些元素设置一些样式,如颜色、字体等。一番摸索后,发现可行,这里就把最基本的成果分享出来。

可添加的元素

  • 段落
  • 超链接
  • 标题
  • 表格
  • 列表
  • 图片
阅读全文 »
DistChen

跨平台的SpringWebsocket使用

发表于 2016-11-15  |  2016-11-16   |   分类于 websocket   |    条

项目地址:https://distchen.github.io/DistSpringWebsocketClient-CSharp/

如果你用过WebSocket 的话,你会觉得用来做推送等消息服务真轻松,同时你也会意识到因为其太简单,导致很多事情都需要自己处理。为了简化二次处理的过程,Spring 提供了一个 Spring WebSocket 模块,此模块用 Stomp 协议来处理消息,使得我们可以用发布、订阅的模式来使用WebSocket。

这里要弄明白的是:Spring WebSocket 仅仅只是用了 Stomp 协议 协议的消息格式,并不是说 Spring WebSocket 自己是一个 Stomp Server,所以是无法使用 Stomp 协议 提供的各种 Client 来进行连接并使用的(Stomp.js除外)。因此如果想用 C# 等语言连接上 Spring WebSocket,只要保证发送的消息符合 Stomp Frame 的格式就行了。

Stomp Frame 示例

COMMAND
header1:value1
header2:value2

Body^@
阅读全文 »
DistChen

在 Web 程序中动态添加 GZIP 支持

发表于 2016-11-15  |  2016-11-16   |   分类于 web   |    条

大家都知道开启 GZIP 后的好处显而易见:提高网页的浏览速度。不管是精简代码,还是压缩图片都不如启用 GZIP 来的实在。GZIP 压缩效率非常高,通常可以达到70%的压缩率,也就是说,如果你的网页有30K,压缩之后就变成了9K左右,极大的减少了传输的数据量。web程序在进行性能优化的时候,都会启用GZIP支持。

阅读全文 »
DistChen

浏览器缓存与访问方式

发表于 2016-11-14  |  2016-11-16   |   分类于 web   |    条

之前在做项目的过程中,有一件很痛苦的事情就是每次前端修改文件后(静态资源),必须得清空下浏览器缓存才能生效,所以就看了下浏览器缓存相关的知识点。

http 协议中有这样几个 header:Last-Modified、ETag、Cache-Control、Expires 、If-None-Match 、If-Modified-Since等。访问一个网页可以在地址栏回车,可以F5刷新,Ctrl+F5强制刷新、浏览器的刷新按钮等多种方式。让人想不到的是:不同的访问方式对于缓存的使用有很大区别。

阅读全文 »
DistChen

单点登录(SSO) CAS 实践

发表于 2016-11-01  |  2016-11-16   |   分类于 sso   |    条

CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的、开源的项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方法(属于 Web SSO )。在这篇文章(http://www.coin163.com/java/cas/cas.html)里面有对CAS 的一些介绍,这里我就不进行介绍了,我直接说我的实践过程和改造过程。

这里说下我对cas 这个sso解决方案的看法:cas基于session。因为我们每打开一个浏览器,都会生成一个session,该session 的id值 以cookie 的形式保存在浏览器中,当浏览器关闭或者手动设置 session 失效 invalidate的时候,保留session id 值的cookie会消失。所以当访问某个web应用程序时,如果request 所携带的头消息中的sessionid没有在sso验证中心检测到,那么就会自动跳转到sso验证中心提供的登录页面去进行登录,然后再将请求返回;如果有检测到对应的sessionid,那么就可以直接访问程序。所以cas的模式就是一个验证中心,多个客户端,登录、注销等页面由sso统一提供。

阅读全文 »
1234
DistChen

DistChen

梦想还是要有的,万一实现了呢?

38 日志
17 分类
37 标签
GitHub Weibo
© 2015 - 2018 DistChen ● 鄂ICP备17010195号-2
邮箱: chenyp@chenyp.com
QQ联系