nginx常用配置

内置变量 实例:http://localhost/user?name=xiaoming&age=6#extra 变量说明示例$args请求中的参数值name=xiaoming&age=6$query_string同 $argsname=xiaoming&age=6$arg_NAMEGET请求中NAME的值name$is_args如果请求中有参数,值为”?”,否则为空字符串?$uri请求中的当前URI(不带请求参数,参数位于$args),可以不同于浏览器传递的$request_uri的值,它可以通过内部重定向,或者使用index指令进行修改,$uri不包含主机名,/user$document_
阅读全文〉

微信jssdk本地调试方法

微信生态里为了安全,做了种种限制,对于开发阶段来说非常不友好,最近用到微信jssdk的语音识别功能,看着很简单,但是用起来一点不顺畅,因为只能在指定域名下才能接入微信jssdk,甚至需要后端配置,这个在调研阶段是很麻烦的一件事。但是没办法,用人家的东西,只能遵守人家的规则(大爷永远是大爷),只能通过一些非常规方法,实现本地调试,而且前期调研不需要后端介入。 必要条件 使用微信jssdk的两个必要条件 * 你要有一个微信公众号 * 你要有一个成功备案的域名 如果这两个条件你都没有,开发之前赶紧着手这两件事,否则你千辛万苦开发出来的功能可能没法按时上线,因为域名备案通常情况下要20个工
阅读全文〉

Flutter之事件机制(手势识别)

命中测试和事件冒泡 Flutter的原生事件(pointerdDown, pointerMove, pointerUp等)是由系统发起的,然后由Flutter的判断手指和屏幕接触的点是否命中flutter的wedget,从而触发对应的回调函数。事件机制包括命中测试和事件冒泡机制,和web上的事件捕获和事件冒泡类似。 命中测试阶段会涉及到两个方法hitTestChildren和hitTestSelf。首先优先使用hitTestChildren检测是否命中组件的子组件,如果命中则继续测试被命中的子组件,如果hitTestChildren失败,即没有被命中的子组件,那么使用hitTestSelf测
阅读全文〉

SEO分析和优化

网站SEO最终的目的就是使用最低的成本让更多人访问到我们的网站,通常就是提高网站的自然流量:即在不收费的情况下搜索引擎的搜索结果贡献的流量。而我们的SEO优化主要就是提高自然流量。要提高自然流量,那么首先就要让搜索引擎发现自己的网站,并爬取我们的网站,给我们的网站建立索引,提取网站关键词。 怎样让搜索引擎发现我的网站? 即使网站内容再好,搜索引擎没有发现我们的网站,也就无法爬取网站,建立索引和提取关键词也就无从谈起,所以SEO的第一步就是要搜索引擎发现我们的网站。那么首先要提一个问题,你的网站到底被搜索引擎发现没有?想要回答这个问题,我们可以使用以下SEO分析工具,来查看我们的网站被各个搜索
阅读全文〉

THREE.JS之文本对象

在很多应用中,不光是有图像图像对象,有时还要给场景添加必要的文字说明等等。比图说游戏中的积分,生命值等等,或者使用文本做装饰等等。在three.js中,使用TextGeometry这个类来创建文本。今天要实现的效果如下图: 首先创建文件index.html 在上面代码中首先引入three.js[官网]文件和OrbitControls.js文件,其中OrbitControls是一个摄像机控制器,用来进行场景漫游。使用控制器来控制视角,更能体现3D的立体效果。 完整的例子步骤如下: 1、创建并初始化渲染器(Renderer); 2、创建并初始化场景(Scene); 3、创建并初始化摄像机
阅读全文〉

THREE.JS之几何体(Geometry)

众所周知,在3D世界里,物体都是有网格构成的,而网格的组织规则是通过几何体(Geometry)来定义。在three.js中,有两类几何体,我把它们叫做基本几何体和buffer几何体。基本几何体的顶点位置,缩放,旋转角,颜色,法线信息都是保存在特定的类里面,比如顶点位置使用Vector3,颜色信息使用Color。而buffer类的都是使用数组存储的,并且缓存在了内存缓冲区里,减低了对GPU的消耗。正是由于基本几何体和Buffer几何体的特点,决定了他们各自的使用场景:基本集合使用类来管理自身信息,便于操作,用来创建经常变化的物体;buffer几何体由于使用数组来管理,如果需要操作,必须去除其原始
阅读全文〉

THREE.js之简介

THREE.JS是什么? Three.js是一个轻量级,跨平台的Javascript库,可以在浏览器上结合HTML5的canvas,SVG或者WebGL,创建和展示3D模型和动画。 Three.js允许我们在不依赖任何浏览器插件的情况下,创建一个GPU加速的3D动画场景,这可能得益于WebGL的出现,因为WebGL的底层实现是基于OpenGL。 相信读者看到这篇文章之前,已经被Three.js的魅力所吸引,如果你还不清楚Three.js的能干什么,还没有领会其魅力所在,那么可以去他们的官网,体会一下。 基本概念 首先我们来介绍介绍一下Three.js的基本概念,其中有三个最重要的概念是渲
阅读全文〉

THREE.JS之照像机(Camera)

在简介的章节中,我介绍过照相机在3D的世界中的作用,照像机之于场景,就像天文望远镜之于宇宙。天文望远镜能看到什么东西,我们才能看到什么东西。所以照像机在3D有着非常重要的地位,这一章我们来介绍一下Three.js中的照像机,包括透视相机(PerspectiveCamera),正交相机(OrthographicCamera),立方体相机(CubeCamera)和立体相机(StereoCamera)。 透视相机(PerspectiveCamera) 透视相机应该是使用最多的一类照相机了,因为这类摄像机成像的原理和我们人眼看东西是一样的—近大远小。在简介章节中,我们就是用透视相机来观察我们创建的第
阅读全文〉

Taro样式引入不成功

*问题 * 原来使用微信小程序原生写的, 不需要手动引入样式;再使用taro写的时候忘记了这一步,然后run dev之后不能同步样式,只有修改样式文件之后,服务检测到文件发生改动才会把修改的样式文件同步过去(不是所有样式文件),一度怀疑人生 ** 解决 ** taro 需要手动引入样式文件; import './index.scss'
阅读全文〉

Flutter使用PlatformView实现实时滤镜

短视频如此火爆,想尝试一下Flutter。短视频涉及到的功能无非就是美颜,滤镜,视频裁切,视频压缩上传等,本以为会有一些这方面的插件能够拿来即用。但是翻了一圈dart.dev,结果还是没有找到相关插件。最后调研了一番,发现flutter实现了一个组件PlatformView,说这个插件可以直接将原生的View展示到Flutter层面上,好处就是如果原来在原生端已经实现了相关功能,而且迁移到flutter实现会很麻烦或者有性能问题,那么就可以直接使用Platform来实现。坏处就是对于没有原生能力的开发者,这是一个大坑,恰好我就是这样的开发者。但是遇坑爬坑,这是一个开发者的基本素质,经过我各种文
阅读全文〉