其实这个示例用到了JavaScript的两个核心事件,键盘事件onkeydown
,周期执行事件setInterval
。
实现效果
当按下键盘某个键时网页中的人物实现相应的动作,达到利用键盘控制走动效果
实现步骤
- 预订键值作用:
w
:向上s
:向下a
:向左d
:向右空格
:停止
- 设置键值后,要能捕获按键事件以及判断用户按的是哪个键?
捕获键盘事件可以用onkeydown
,获取键值码可以用event.keyCode
...
其实这个示例用到了JavaScript的两个核心事件,键盘事件onkeydown
,周期执行事件setInterval
。
当按下键盘某个键时网页中的人物实现相应的动作,达到利用键盘控制走动效果
w
:向上s
:向下a
:向左d
:向右空格
:停止
捕获键盘事件可以用onkeydown
,获取键值码可以用event.keyCode
...
HTML5新增了几个input类型,都是比较实用的。
<input type="email" />
顾名思义,即自动验证输入的值是否是email
<input type="url" />
同样自动验证输入的值是否是正确的URL
<input type="number" min="1" max="10" />
只接受数字类型
min
参数为最小值max
参数为最大值<input type="range" min="1" max="10" />
...
Go里对JSON的操作提供了encoding/json
这个包两个方法
json.Marshal()
json.Unmarshal()
对象转JSON,使用json.Marshal()
方法
// 琼台博客 www.qttc.net
package main
import (
"encoding/json"
"fmt"
)
type People struct {
Age int `json:"age"`
Name string `json:"name"`
}
func main() {
p := People{18, "Nicholas"}
s, err := json.Marshal(p)
if err != nil {
panic(err)
} else {
fmt.Println(string(s)) // Output: {"age":18,"name":"Nicholas"}
}
}
...
首先我们来看一下substring()
函数使用介绍
语法
string.substring(start, end)
substring()
需要至少需要一个参数
Example
// 琼台博客 www.qttc.net
// 一个参数
var str = '欢迎各位童鞋到琼台博客做客';
var sub = str.substring(3);
console.log(sub); // Output: 位童鞋到琼台博客做客
// 两个参数
var str = '欢迎各位童鞋到琼台博客做客';
var sub = str.substring(3,11);
console.log(sub); // Output: 位童鞋到琼台博客
...
之前一直用MySQL,虽然比起SQLServer这个庞大的数据库系统MySQL很轻量,但它并不逊色。以下说说这两个在数据库各自的分页区别
MySQL
SELECT * FROM table LIMIT 10;
SQLServer
SELECT TOP 10 * FROM table
MySQL
SELECT * FROM table LIMIT 20,10
SQLServer
SELECT TOP 10 * FROM table WHERE id NOT IN(
SELECT TOP 20 id FROM table ORDER BY id DESC
) ORDER BY id DESC;
...
SyntaxHighlighter已经成为高亮插件主流,最近使用发现默认下载安装不做修改的话在Chrome下会出现右侧滚动条,特别丑
解决这个问题只需要一行代码搞定
找到shCore.css
这个文件,找到下面代码
.syntaxhighlighter table {
width: 100% !important;
}
改成以下代码
.syntaxhighlighter table {
width: 100% !important;
margin: 1px 0 !important;
}
搞定!即给.syntaxhighlighter
类下的table
加一个1px像素的外边距。
...
网站一经上线后,有些文件几乎都不常去更新了,比如css、js和图片等。减少HTTP请求是优化网站的最佳方案之一,我们可以利用Nginx缓存静态文件。
在Nginx中可以使用proxy_cache
将用户的请求缓存到本地一个目录,当下一个请求时可以直接调取缓存文件,就不用去请求服务器了。
具体操作如下
打开nginx.conf
配置文件,在http
层级加入以下代码
proxy_connect_timeout 10;
proxy_read_timeout 180;
proxy_send_timeout 5;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_temp_path /tmp/temp_dir;
proxy_cache_path /home/cache levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=10g;
...
近来,PHP布新版本比较频繁,在我写这篇博文时,PHP5.3.x
系列最新版本已到5.3.13
,5.4.x
系列的已经到5.4.3
。在升级PHP版本前小站使用的程序是5.3.6
,已经算是老版本了。之前还听说现在还有用5.2.x
版本的,无语了!最新版本做了一些重要的补丁以及安全方面的更新,所以值得升级,下面介绍如何升级PHP版本。
可以到php.net这里下载最新发布的PHP版本包,目前使用VPS居多吧,常规做法是先下载PHP包到本地上,然后在传到VPS上,如果是使用VPS那么可以直接从VPS上下载即可,这样省事,而且也方便。下载时,选择适合VPS的相应节点,如你的VPS在美国就选择美国节点,这样下载速度会比其它节点要快。
...
NodeJS中读写文件基本都是用fs模块,应该是file system
的缩写
读文件有两个API,差别就是一个是同步另一个异步
fs.readFile
fs.readFileSync
// 琼台博客 www.qttc.net
// fs.readFile
var fs = require('fs'),
path = require('path'),
filePath = path.join(__dirname, 'index.md');
fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
if (!err) {
console.log('received data: ' + data);
} else {
console.log(err);
}
});
// fs.readFileSync
var data = fs.readFileSync(filePath, {encoding: 'utf-8'});
console.log('received data: ' + data);
...
使用for循环是最常见的一种方式
// 琼台博客 www.qttc.net
for (let i=0; i<1000; i++) {
console.log(i)
}
while循环,比较简单
// 琼台博客 www.qttc.net
let i = 0
while (i<1000) {
console.log(i)
i++
}
跟while循环一样,只不过先执行一次
// 琼台博客 www.qttc.net
let i = 0
do {
console.log(i)
i++
} while (i < 1000)
...