有过微信小程序开发经验的朋友应该都知道"双线程模型"这个概念,本文简单梳理一下双线程模型的一些科普知识,学识浅薄,若有错误欢迎指正. 我以前就职于「小程序·云开发」团队,在对外的一些培训和技术分享里经常被人问到这样一个问题:"微信小程序与 Web 网站在技术层面的主要区别是什么?",在编程语言和范式上,小程序开发与 Web 前端开发非常相似(比如都用 JavaScript 语言.与 HTML/CSS 非常相似的 WXML/WXSS 等),可它却没有直接用原生的前端技…
微信小程序有四种类型的文件 js 类型文件 小程序的逻辑代码文件 小程序对js es6的处理比较友好,基本上我们的es6语法都需要使用babel插件去转化成es5(具体是什么原因,自己可以去了解一下),对于es6特定的api还需要使用polyfill去处理,但是小程序的开发工具和内置基础库内置基础库,全部都已经给你处理了,这一点非常pretty. json 类型文件 在小程序中json文件一般都是配置文件 导航栏背景颜色 导航栏标题文字内容 窗口的背景色 等都由json文件配置,json配置文件…
导航:C#开发微信小程序系列 关于小程序项目结构,框架介绍,组件说明等,请查看微信小程序官方文档,关于以下贴出来的代码部分我只是截取了一些片段,方便说明问题,如果需要查看完整源代码,可以在我的项目库中下载: https://dev.tencent.com/u/dwBurning/p/ReallyWantToApi/git https://git.dev.tencent.com/dwBurning/LazyOrders.git 睡一觉醒来,看到微信公众号推送的一篇鸡汤文,叫做<不会,我可以学!!!…
最近集中开发了两款微信小程序,分别是好奇心日历(每天一条辞典+一个小投票)和好奇心日报(轻量版),直接上图: Paste_Image.png 本文将结合具体的实战经验,主要介绍微信小程序的基础知识.开发中遇到的难点.项目的架构设计.最佳实践以及踩过的坑.文章内容较多,如果想看架构设计和躲坑技巧,请直接浏览后面的正文,简书没有目录,也挺伤感的. 值得再次声明的是:微信小程序的内容部分是hybrid模式,并非原生,所以性能并不好,绑定的tap事件也有明显的延迟. 每一个由边框围起来的部分,都是一个最…
一.WebSocket概述 http://www.ruanyifeng.com/blog/2017/05/websocket.html Workerman一款开源高性能异步PHP socket即时通讯框架https://workerman.net HTTP是无连接的:有请求才会有响应,如果没有请求,服务器想主动推送信息给浏览器是不可能的. 比如图文直播.聊天室原理:长轮询. setInterval(function(){ $.get() },1000) 间隔一定的时间,主动向服务器发起请求,询问…
由于某些特定的业务场景,当多个小程序需要一个服务端后台提供数据时,大家可能想到是HTTP路由.是的,实际上我们使用微服务的GateWay网关也是一样的,如下图微服务架构: 网关GateWay的作用在于提供统一的入口来访问内部的API, 隔离外部访问与内部系统.集成了非业务性的功能(如安全检查.频次限制.API监控.日志上报等),API生命期管理.请求的转发.合成.协议转换.服务发现等多种功能.更多可以参考apigateway API网关的优点: 给服务加一层安全保护可在这一层做SQL注入.CRS…
前言 本文章秉着自动化工程项目的思想搭建的,基础架子完全按照wepy官网搭建,在基础上增加配置达到自动化项目.新增动flxio拦截器自动处理接口,新增根据环境变量来改变运行时的参数. Fly.js 小程序拦截器个人不是很满意,在网上就寻找到了fly.js 感谢作者大大@wendux 简介 一个支持所有JavaScript运行环境的基于Promise的.支持请求转发.强大的http请求库.可以让您在多个端上尽可能大限度的实现代码复用,它有如下特点: 提供统一的 Promise API. 浏览器环境…
小程序开发并不愉快,许多必建的文件不会自动生成,页面之间的跳转没有快捷键,开发者工具显示区域受限……如果谁有对应的解决办法求告知…… 开始的时候每次保存代码,页面都会刷洗重新渲染一次,而且自动跳回首页,让人很不爽,后来随便点点,发现这里还是可以设置一些东西方便开发的. 开发模式下,点击左侧的“项目”,下面的选项可以阻止ctrl+S触发的刷新(其实这个留着也挺好的,不卡就行). 下一个选项是允许开发环境中从未注册的域名中请求数据,下载文件等.项目上线则需要将相关的域名都在开发设置中添加进去,每个月…
注意事项: 1.application\api\extra下的wx.php记得填写小程序的app_id.app_secret: 2.API测试小工具需要APPID:…
小程序的每个页面都是独立的,每个页面都必须有 page.js 和 page.wxhl 文件,page.json 和 page.wxss 文件非必要文件,注意如果创建 page.json 则至少保证有一个对大括号,否则IED报错. page.js 管理该页面的逻辑事件.每个页面必须声明 Page() 方法. Page() 用来注册页面,其包含一下属性: data 用于初始化数据:data 将会以 JSON 的形式由逻辑层传至渲染层,所以其数据必须是可以转成 JSON 的格式:字符串,数字,布尔值,…