2017年6月

微信小程序开发运行问题

一、微信小程序运行环境

1、完全封闭的环境不等于浏览器环境

2、WXML/WXSS/JS格式

3、WXML 不等于 HTML

4、WXSS 不等于 CSS3

5、JS:支持ES6,ES5,不支持DOM(window,document,event,etc...)

6、不支持WEBGL,包含部分Canvas API

7、封闭的发布渠道:程序需通过官方IDE提交审核

8、腾讯完全控制客户端底层的内部实现

二、微信小程序Canvas游戏限制分析

1、不支持Affine Transform 矩阵设置

2、不支持globalAlpha(忘记淡入淡出)

3、不支持贴图变色(无法创建缓存Canvas对象)

4、不支持图集(无法创建Image对象)

5、不支持BMFont字体

6、不支持剪裁(忘记ScrollView)

7、不支持WebGL,所以不支持任何高级特效

8、严格的模块化,不支持全局变量注入,只支持global下注入

9、不支持项目内文件加载

10、不支持多点触摸

11、不支持文字排版:换行,居中等

12、不支持九宫格、重复填充、网格等渲染模式

13、不支持skew

14、不支持混合模式

15、支持Creator组件:Label,Sprite,Button,Widget,Layout,Animation,其他都不支持

16、官方说法:context只是一个记录方法调用的容器,用于生成记录绘制行为的actions数组。context跟不存在对应关系,一个context生成画布的绘制动作数组可以应用于多个

实际上,context.getActions()后,context中的信息会被清空,如果想重复利用,需要var temp=context.getActions()将操作数组保存下来,才可重复用于wx.drawcanvas;
https://www.bbsmax.com/A/x9J2mKrZz6/

nginx gzip压缩和gulp js压缩 的效果

-rwxr--r-- 1 forthxu forthxu 262K Jun 16 14:57 jquery-3.2.1.js //原始大小
-rw-r--r-- 1 forthxu forthxu 78K Jun 16 15:02 jquery-3.2.1.js.gz //原始文件gzip后的大小
-rwxr--r-- 1 forthxu forthxu 86K Jun 16 15:15 jquery-3.2.1.min-d6a2dcf9a6.js //javascript压缩后的大小
-rw-r--r-- 1 forthxu forthxu 30K Jun 16 15:16 jquery-3.2.1.min-d6a2dcf9a6.js.gz //javascript压缩后在使用gzip压缩的大小

gzip -c jquery-3.2.1.js > jquery-3.2.1.js.gz

gulp.task('testjs', function() {
    return gulp.src('../../public/test/jquery-3.2.1.js')
            //.pipe(concat('all.js'))// 合并
            .pipe(uglify())// 优化
            .pipe(rename(function(path) {// 重命名
                path.basename+='.min';
            }))
            .pipe(rev())//生成版本号
            .pipe(gulp.dest('../../public/test/'))
});

gzip -c jquery-3.2.1.min-d6a2dcf9a6.js > jquery-3.2.1.min-d6a2dcf9a6.js.gz

CSS实现分隔线中间带文字的方法,取代fieldset-legend

小小分隔线 单标签实现


小小分隔线 巧用色实现


小小分隔线 inline-block实现


小小分隔线 浮动来实现


———————————小小分隔线 字符来实现————————————


<div class="demo-container demo">
<style type="text/css">
.demo{
    width: 600px;
    margin:10px;
}
.line_01{
    padding: 0 20px 0;
    margin: 20px 0;
    line-height: 1px;
    border-left: 200px solid #ddd;
    border-right: 200px solid #ddd;
    text-align: center;
}
.line_02{
    height: 1px;
    border-top: 1px solid #ddd;
    text-align: center;
}
.line_02 span{
    position: relative;
    top: -12px;
    background: #fff;
    padding: 0 20px;
}
.line_03{
    width:600px;
}
.line_03 b{
    background: #ddd;
    margin-top: 4px;
    display: inline-block;
    width: 180px;
    height: 1px;
    _overflow: hidden;
    vertical-align: middle;
}
.line_03 span{
    display: inline-block;
    width: 220px;
    vertical-align: middle;
text-align: center;
}
.line_04{
    width:600px;
}
.line_04{
    overflow: hidden;
    _zoom: 1;
}
.line_04 b{
    background: #ddd;
    margin-top: 12px;
    float: left;
    width: 26%;
    height: 1px;
    _overflow: hidden;
}
.line_04 span{
    padding: 0 10px;
    width: 32%;
    float: left;
    text-align: center;
}
.line_05{
    letter-spacing: -1px;
    color: #ddd;
}
.line_05 span{
    letter-spacing: 0;
    color: #222;
    margin:0 20px;
}
</style>

<div class="line_01">小小分隔线 单标签实现</div>
<br>
<br>
<div class="line_02"><span>小小分隔线 巧用色实现</span></div>
<br>
<br>
<div class="line_03"><b></b><span>小小分隔线 inline-block实现</span><b></b></div>
<br>
<br>
<div class="line_04"><b></b><span>小小分隔线 浮动来实现</span><b></b></div>
<br>
<br>
<div class="line_05">———————————<span>小小分隔线 字符来实现</span>————————————</div>
<br>
<br>
</div>