Johuer's Blog

多学知识,精简代码

0%

Springfox

Automated JSON API documentation for API's built with Spring

自动生成JSON-API文档通过Spring项目

相信大多数朋友都遇到过这样一个场景:明明调用的是之前约定好的API,拿到的结果却不是想要的。可能因为是有人修改了API的接口,却忘了更新文档;或者是文档更新的不及时;又或者是文档写的有歧义,大家的理解各不相同。总之,让API文档总是与API定义同步更新,是一件非常有价值的事。

https://springfox.github.io/springfox/

文档

官方教程:https://springfox.github.io/springfox/docs/current/
官方API:https://springfox.github.io/springfox/javadoc/current/

阅读全文 »

简介

Browserify

http://browserify.org/

npm上有许多资源和第三方库,但是只能在node端使用,所以Browserify就是在浏览器端写node代码,然后转换为浏览器端使用。

Browsers don’t have the require method defined, but Node.js does. With Browserify you can write code that uses require in the same way that you would use it in Node.

浏览器没有定义require方法,但是node.js有。使用Browserify能在浏览器端写代码使用require方法就同在Node

阅读全文 »

Spring-Mybatis-JSON

Spring版本是4.3.2,在用@ResponseBody标注返回json格式时候遇到这样的错误:“The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request “accept” headers.”。

解决办法:
参考

阅读全文 »

动态操作js

动态加载

在需要加载js的地方,直接写入一下代码

1
document.write('<script src="js/jquery-3.0.0.js" type="text/javascript" charset="utf-8"><\/script>');

Example:

1
2
3
4
5
6
7
8
<head>
<meta charset="utf-8" />
<title></title>
<script type="text/javascript">
window.jQuery || document.write('<script src="js/jquery-3.0.0.js" type="text/javascript" charset="utf-8"><\/script>');
</script>
<script src="js/jquery.jsonp.js" type="text/javascript" charset="utf-8"></script>
</head>

阅读全文 »

  tomcat内存设置、线程池设置、及状态查看

内存设置

window:
修改文件:tomcat/bin/catalian.bat
在rem Guess CATALINA_HOME if not defined下添加:
set JAVA_OPTS=-Xms512m -Xmx512m -XX:MaxNewSize=512m -XX:MaxPermSize=512m

-Xms:java Heap初始大小。 默认是物理内存的1/64。
-Xmx:java heap最大值。建议均设为物理内存的一半。不可超过物理内存
-XX:PermSize:设定内存的永久保存区初始大小
-XX:MaxPermSize:设定内存的永久保存区最大大小
-XX:NewSize: 新生成的池的初始大小
-XX:MaxNewSize: 新生成的池的最大大小

阅读全文 »

  本人做一个项目需要使用音乐播放。然后涉及到音频自动播放,想想H5已经实现多媒体audio和video,所以直接采用了audio元素。

[TOC]

pc

PC端比较容易,直接调用play方法,如下代码,页面加载完成后,直接调用方法即可,此方法在pc端和QQ浏览器完美运行。
但是移动端浏览器问题就出现了,不信可以试试。

1
2
3
4
5
6
7
8
9
10
11
12
html:
<audio id="audio" src="source/oneminute.mp3" preload="auto">
</audio>

js:
window.onload = function() {
play();
}
function play() {
var audio = document.getElementById("audio");
audio.play();
}
阅读全文 »

使用超时调用来模拟间歇调用时一种最佳模式,原因是最后一次间歇调用可能会在前一次间歇调用结束前启动,所以最好不要使用间歇调用。

间歇调用

// no recommend

1
2
3
4
5
6
7
8
9
10
11
var num = 0;
var max = 10;
var intervalId = null;
function incrementNumber() {
num++;
if(num == max) {
clearInterval(intervalId);
alert("Done!");
}
}
intervalId = setInterval(incrementNumber, 500);
阅读全文 »

侧滑方式

  • 主界面移动,菜单不动
  • 主界面不动,菜单移动
  • 整体移动(整体滑动暂不支持android手机,因为两个页面的移动动画,无法保证同步性)

方式一:主界面移动,菜单不动

主界面的zindex必须大于侧滑界面的zindex

主界面预加载侧滑页面

主界面样式:

1
2
3
main.setStyle({
zindex: 2
});

侧滑页面样式:

1
2
3
4
5
styles: {
left: 0, // 窗口水平向右的偏移量
width: '70%', // 侧滑页面只显示70%
zindex: 1
}
阅读全文 »