上线版本
github-page版,比较慢,无后台统计人数功能
使用 css3的动画,事件实现国旗上升,暂停
使用 transform 控制元素位值变化,开启新图层,避免不必要的重排
- 后台使用 nodejs
- 使用 pm2 运行web服务
- 数据库用 redis
- 持久化采用默认的RDB方式,每秒保存一次。不会丢失太多数据
为什么要用 redis
文件io效率低下,并发时会出现问题
业务比较简单,相比于其他数据库,使用 redis 更快,更方便
前端和后端部署,能不跨域就不跨域。
而且服务器暴漏太多端口不好
所以使用 nginx 反向代理
location /api {
proxy_pass https://127.0.0.1:3300;
}
拿来直接就能用,如果要追求更好的性能,可以使用cdn,修改 js/config.js
API_URL // 后台api的url,如果你使用了反向代理,保持默认即可。否则,配置下 CORS 跨域
ASSET_URL // 静态资源地址
git clone https://github.com/jianwi/flag_up.git
如果没有 pm2 ,先全局安装pm2
cnpm install pm2 -g
安装依赖
cd api
cnpm install
运行 api 服务器
pm2 start index.js
默认是 3300 端口,此时用浏览器打开“127.0.0.1:3300”如果显示404则成功
此时可以选择使用反向代理,或者将 config.js 中的 API_URL 改为 “127.0.0.1:3300“,此时需要后端实现跨域资源共享
推荐使用反向代理
- 部分 ios 设备在 audio.play() 调用后才开始加载
在 audio 创建完后立即调用 audio.play() 和 audio.pause()
使用预加载
- pc 端用鼠标点击不能触发事件
pc 端不支持 touch 事件。
怎么检测设备是否支持 touch 事件?
如果不支持,document.ontouchstart 就是 undefined,因为没有这个属性。 然而支持的话,document.ontouchstart 就是 null ,表示是个空指针引用