常见问题
小程序绘制海报图异常
问题:第一次绘制海报图时可以正常绘制,以相同参数第二次绘制就无法绘制成功
解决方案:
第一次绘制后将图片缓存下来,如果参数相同则直接展示图片,不相同时再重新绘制
浏览器兼容问题
360浏览器兼容模式下白屏
解决方案: 增加meta标签设置默认加载内核方式为极速模式 <meta name="renderer" content="webkit">
其他问题
- 字体文件在兼容模式下不支持.ttf,需要转化为.eot后缀的文件
- 代码需要编译为es5.
setTimeout执行异常
Chrome, Safari, Firefox 在内的浏览器其内部以32位带符号整数存储延时。这就会导致如果一个延时(delay)大于 2147483647 毫秒 (大约24.8 天)时就会溢出,导致定时器将会被立即执行。 dealy 的最大值为 2^31 = 2147483648
解决方案:动态刷新计时器
javascript
let endTimer = null;
function listenerEnd(now, endDate){
if (endDate && now <= endDate) {
const endDuration = endDate - now;
const day = 1000 * 60 * 60 * 24;
let dealy = endDuration;
if (endDuration >= day) {
dealy = day;
}
clearTimeout(endTimer)
endTimer = setTimeout(() => {
if (Date.now() <= endDate) {
listenerEnd(Date.now(), endDate)
} else {
closeHandle()
}
}, dealy)
}
}