小程序

338 阅读2分钟

1.小程序和h5的区别:

  • 运行环境:传统H5运行环境式浏览器包括webview等,微信小程序运行环境是非完整的浏览器,是基于浏览器内核完全重构的一个内置解析器,针对小程序做了优化,配合自己定义的开发语言标准,大幅度的提升了小程序的流畅度和性能
  • 开发成本:我们开发一个HTML的web需求时,开发工具,前端框架,模块管理工具,任务管理工具,ui库的选择,接口调用,浏览器兼容性...都要考虑到。我们开发一款小程序时,微信提供了统一的开发工具,并且规范了开发标准,所以作为开发者,只需要专注代码逻辑就好了,不用担心兼容性,还可以随意调用微信开发里的API
  • 系统权限 微信能获取到更多的系统权限,如网络通信状态,数据缓存能力等,这些系统权限都能与小程序无缝衔接,而HTML的大多数应用被圈定在业务逻辑简单、功能单一
  • 用户体验:我们打开网页时,需要在浏览器中渲染,加载各种资源,无论加载时间的长短,都会给用户一种卡顿不流畅的感觉。小程序时微信内的云端应用,通过webSocket双向数据通信,(保证无需刷新即时通信),本地缓存(图片,视频...)降低了和服务器交互延迟,微信底层技术优化实现了小程序接近原生APP的体验,所以在相同条件下,html和小程序,小程序更流畅。

2.小程序的技术实现

不允许开发者把页面跳转到其他在线网页

不允许开发者直接访问DOM

不允许开发者随意调用window上的某些可能有危险的API

页面渲染的方式有三种:

1.web渲染

2.native原生渲染,

3.web与native两者掺杂渲染,即hybrid 渲染

小程序就的呈现形式为第三种

双线程通信方式--为了管控安全,避免操作DOM

小程序的架构:

小程序的渲染层使用了WebView进行渲染,逻辑层使用了JSCore线程运行js脚本

view层用来渲染页面结构,app Service用来逻辑处理,数据请求,接口调用。。。。

在两个进程(两个webView)里运行

视图层和逻辑层又通过系统层进行通信