了解小程序与普通网页开发的区别,你知道吗?
发表时间:2023-09-19 17:41:15
文章来源:炫佑科技
浏览次数:129
菏泽炫佑科技 菏泽炫佑小程序开发 菏泽炫佑app制作 炫佑科技
了解小程序与普通网页开发的区别,你知道吗?
了解小程序的由来
在小程序出现之前,微信逐渐成为移动网络的重要入口。 微信发布了一套名为JS-SDK的网页开发工具包,为所有网页开发打开了一个新窗口,让所有开发可以使用微信原生能力来完成以前不可能或很难做到的事情。
但JS-SDK模式并没有解决移动网页使用时体验不佳的问题,例如由于设备性能和网速限制可能出现白屏等问题。 因此,设计了JS-SDK的增强版react开发微信小程序,即“微信网页资源离线存储”。 但在复杂的页面上仍然会出现白屏的问题。 原因是页面切换的僵硬和点击的滞后。 这时就需要一个JS-SDK无法处理的系统来让用户体验更好,小程序就应运而生了。
小程序和普通Web开发的区别
小程序的开发和普通的Web开发非常相似,也是小程序的主要开发语言,但是两者还是有一些区别的。
普通的Web开发可以使用各种浏览器提供的DOM API来进行DOM操作。 小程序的逻辑层和渲染层是分离的。 逻辑层运行在应用程序中,没有完整的浏览器对象,因此缺乏相关的DOM API。 和。
普通的Web开发渲染线程和脚本线程是互斥的,这就是为什么长期脚本运行可能会导致页面失去响应的原因。 但在小程序中,两者是分开的,运行在不同的线程中。
Web开发开发网页时,只需要使用浏览器并使用一些辅助工具或编辑器即可。 小程序的开发则不同。 需要经历申请小程序账号、安装小程序开发工具、配置项目等流程。
小程序运行机制
小程序启动时有两种情况,一种是“冷启动”,一种是“热启动”。 如果用户已经打开过一个小程序小程序了解小程序与普通网页开发的区别,你知道吗?,然后在一定时间内再次打开,则此时不需要重新启动。 只需将后台的小程序切换到前台即可。 这个过程是热启动; 冷启动是指用户**次打开小程序或者被微信主动销毁后再次打开时,需要重新加载并启动小程序。
小程序更新机制
如果冷启动时发现新版本小程序,则会异步下载新版本代码包,并与客户端本地包同时启动。 即下次冷启动时才会应用新版本的小程序。 如果需要立即应用*新版本,可以使用 wx. API 来处理它。
小程序安全
作为开发,无论是前端开发还是后端开发,了解常见的安全问题和常见的解决方案都是非常有必要的。
1. 反编译
很多原来的微信小程序已经被技术人员利用反编译技术或者工具反编译出了完整的代码。 这项技术小程序诞生之初就已存在。 大多数开发反编译项目是为了学习,但也有很多公司直接利用反编译市场上现有的小程序来快速构建自己的产品并谋取利润。
对于这个问题,微信官方并没有采取太多应对措施。 毕竟小程序模拟的是浏览器。 对于一般的前端项目,可以在浏览器上右键查看源代码,在控制台上可以查看网络请求等更详细的信息。
小程序代码中不要写入敏感数据。 将所有敏感数据放在服务器上。 当客户端想要使用它时,它通过接口发出请求。 反编译出来的代码都是前端风格,不太重要。 毕竟,一般的前端程序员复制一个小程序项目只是时间问题。
2. 接口认证
开发可以通过抓包、第三方工具等方式轻松获取小程序的网络请求。小程序开发在调用后端接口时,应该对调用进行权限验证,包括自建后端接口和云函数。 否则很容易发生未经授权的访问和数据泄露。
对于敏感数据和开发能力相关的接口,需要在后台进行鉴权。 IP地址、自定义登录状态等信息通常可以得到验证。
认证逻辑应该在后台执行,不应该用小程序中隐藏页面、按钮等来代替。
常见的认证示例如下:
//自建后台鉴权 function actionDelete(){ $item_id = $_POST["item_id"]; $openid = $_POST["openid"]; $ip = $_SERVER['REMOTE_ADDR']; $user_role = $_SESSION["user_role"]; if ($openid === "xxx" && $ip === "192.168.0.101" && $user_role === "admin") { // 进行删除操作 // ... return 0; } else { // 记录非法请求 // ... return -1; } }
//云函数鉴权 exports.main = async (event, context) => { const { OPENID, APPID, UNIONID } = cloud.getWXContext(); if (OPENID === "xxx") { // 进行删除操作 // ... } else { // 记录非法请求 // ... } }
3.代码管理
使用git、svn等版本管理工具时,会生成.git等目录。 有些编辑器或软件在运行过程中也会生成临时文件。 如果将这些目录或文件带到生产环境,可能会发生源代码泄露。
4. 内容安全
对于包含用户输入内容的功能,例如评论、修改昵称、头像等,开发需要自行调用信息过滤接口来判断内容是否包含非法内容。 对于没有配置相应功能的小程序,会发出警告,然后限制搜索。 我之前开发一个社区类小程序就因为这个原因被禁了很长一段时间。
5.敏感数据安全
对于本地存储的敏感数据,例如用户信息,开发应自行加密存储。
小程序双线程架构
什么是双线程架构?
一个线程负责处理逻辑层,一个线程负责处理渲染层。 线程之间通过层进行通信。
为什么选择双线程架构
1、*重要的一点:这是一个基于安全和控制的解决方案
2.其次:比纯web更好的交互体验,
3、原生版本迭代更方便。 小程序选择+原生组件的形式。 它不仅享有页面门槛低、在线更新的优势,还可以使用一些流畅的原生组件,*重要的是它是在空地开发。 内容受到一定程度的控制,从设计层面解决安全问题。
为什么说小程序交互体验比较好呢?
首先,小程序的交互体验肯定不如原生App。 应用程序的响应速度绝对是*快的。 与h5 web相比,web开发的渲染线程和脚本线程是互斥的,也是共享的。 一个线程,这意味着运行脚本线程时页面可能会变得无响应,所以这就是为什么我们在开发网页时需要将脚本引入放在body后面,然后是winow。 了解已渲染的节点。 。 小程序渲染线程和逻辑(脚本)线程是相互独立的,不能直接相互干扰。 渲染线层和逻辑线程可以同时运行。 想一想,这样是不是从设计层面就避免了引入 Fiber 架构要解决的*重要的问题(较大的更新任务会长时间占用当前线程的资源,导致页面被刷新而导致的交互问题)无法回复!)。
小程序在版本迭代方面有哪些优势?
我们都知道原生渲染的体验优势。 这也是为什么有Weex、React等夸张的框架直接生成原生应用进行开发的原因。 但小程序依赖于宿主环境和小程序的发布。 不可能说会和微信大版本迭代。 如果真是这样的话,我认为是不符合小程序质量管理理念的。 它也会有很多缺点,并且无法利用网络的优势。
那么网络的优势有哪些呢? ——答案是在线更新。 ——(任何bug都可以随时修复!连产品经理都察觉不到!),小程序也是在线更新的,但是小程序相对于h5还有一个优势——底层资源的动态注入。 h5脚本资源是通过请求获取的。 获取到之后,需要先对其进行解析,然后再运行实际的业务级代码。 小程序初始化时,(层)会动态加载并注入WXSDK(设备信息、hls流视频处理工具、基础版本库等)到新打开的页面中。 由于小程序的(快速)技术,在后续打开的页面中,直接读取缓存中准备好的数据,直接省去了解析过程。 这些优化小程序的直接影响是(包体积变小,网络请求SDK的时间减少。)
在小程序目前的版本迭代模式下,如果忽略微信审核流程,基本上可以实现99%的用户在线更新。 但它并不完整。 在新版本迭代的情况下,微信虽然不支持强制更新,但是我们可以在交互层面强烈提示用户更新。 但由于某种未知的原因(可能是用户微信版本和小程序基础库版本的问题),并不能100%。 这是后台监控的SDK反馈的数据。
新物种——以小程序为载体的轻应用解决方案
自2017年推出以来,小程序一直是互联网巨头的必争之地。 腾讯、阿里巴巴、百度、字节等都希望利用小程序的能力建设来丰富自己的生态,整合自己的主流平台。 将其打造为超级App。
然而如今,互联网巨头的蜂拥而至,为小程序开发和品牌商家提供了更加多元化的选择,让他们的小程序应用不再需要局限于单一平台生态。
虽然各大互联网公司还没有开放这部分小程序运行能力技术,但我们也不必羡慕。 类似的技术能力早已在市场上推出。 我们一般称之为小程序容器技术。
今天我要跟大家分享的是目前非常流行的前端容器技术——。
只需简单集成SDK,即可在Mac、Mac、Linux、macOS、同心等平台的应用程序中运行您的小程序。
而且,该SDK极其轻量,集成后应用程序安装包大小仅增加不到3MB。
以下功能特性应该对开发者更加友好。 支持微信小程序语法WXML,这意味着微信小程序代码可以直接复用,无需二次开发,体验与微信端一致。
我们还开发了自主开发的小程序IDE开发工具。 界面类似于微信小程序开发工具。 它具有调试和真机预览功能,简单易用。
您可以在该FIDE中对现有项目进行二次开发,扩展功能和接口。
同时,还支持小程序一键转换为App,并可将现有小程序代码导出为IOS和iOS可用的项目文件,并在各个应用市场上架。 由于导出的工程文件自动集成了SDK,因此直接具备了运行小程序能力。 您可以继续在本APP上架更多小程序,打造属于您自己的小程序生态。
此外,FIDE还包含各种扩展插件和接口(支付、人脸识别、音视频、OCR等)。 开发可以自主选择所需的配套插件,增强生成的App的原生能力。
在开发小程序之前,您需要了解相应的问题,以防止可能出现的问题。 开发完成后,还需要排查可能出现的问题,防止造成不必要的损失。
关于微信小程序的运行机制和安全机制解决方案的详细讲解就到此结束。 更多关于小程序的运行机制,请搜索 House之前的文章或者继续浏览下面的相关文章。 今后请多多支持 House!