小程序面试题之项目业务流程9道

1.视频、音频等内容的播放状态存储操作流程一般如何
在进行音、视频播放的时候会涉及到播放不同的音、视频内容
一般会要求应用能够记录每一个音、视频播放的历史记录点,以便于下次播放可以从指定位置开始
我们可以将音、视频播放的记录存储于本地缓存当中,存储的方式是数组对象
要求是每个对象只保留一条信息记录,需要记录音、视频的唯一标识以及音、视频的播放进度时间等信息
再次播放的时候可以先通过音、视频唯一标识进行数据匹配,找到对应的播放进度时间,然后再进行播放操作
2.列表到详情页的参数传递一般传递的内容是什么?为什么?
不管是新闻列表、产品列表、订单列表等内容都有可能会导航跳转至对应的详情页
因为要显示指定的详情信息,所以需要进行参数的相应操作
一般来讲涉及到参数包括:设参、传参、接参、用参等4个部分,但是到底是需要将列表中的整个数据对象进行传递还是只传唯一标识是需要思考的问题
一般情况并不会将整个对象进行传递,因为这种传递模式数据量比较大,而且导航参数传递又只支持字符串模式,所以需要进行数据类型转化操作,转化过程也会出现一定的问题
而且导航参数一般会有长度的限制
关键的因素是列表页只会显示一部分关键信息,它们与详情页的数据并不是完整对应的,详情页的数据一般会比较完整,字段信息内容会更多
所以会考虑传递唯一标识符的传递,这样传递的数据内容比较少,速度比较快,但是在详情页则需要进行与后台的交互进行进一步的数据接口请求
需要考虑详情页数据请求操作在哪个钩子函数中进行处理,如果在onLoad或者onReady中,只会执行一次,在onShow中又是多次查询,所以需要条件判断来确认是否有必要进行再次请求操作,以优化性能
3.订单列表中不同的状态列表用什么方式进行实现?需要注意哪些问题?
订单中心界面中订单的状态包含多种多样
用户可以在不同的状态订单下进行滑动切换以及上拉加载等操作
在不同状态订单列表切换过程中,需要查看到的是之前界面中原来查看的数据与状态
基于性能优化的考虑,需要将每个状态的数据进行单独的存储与记录,这里就涉及到选项卡循环与定位、当前的选项卡下标、订单列表、分页、加载状态等信息。


为了实现左右滑动手势操作等,可以利用swiper组件进行不同订单状态的列表功能
对于数据部分需要利用二维数组进行存放,这样每个状态订单的数据都不会产生冲突:
订单数据:将每个状态下的订单根据tabs做对应,存放于orders对象当中
分页码:可以以一维数组进行不同tabs分页码的记录
加载状态:确认每个状态下的订单数是否是,不可载加、可加载、加载完毕等不同加载状态
data: {
    mainHeight: 0, // 
    swiperCurrentIndex: 0, // 当前swiper的下标
    tabs: ['全部', '待付款', '待收货', '已完成', '已取消'],
    // 订单数据  订单数组和订单状态数组元素一致
    orders: [[], [], [], [], []],
    // 订单页码
    pages: [1, 1, 1, 1, 1],
    // 加载状态
    loadingTypes: [3, 3, 3, 3, 3],
  },

注意:可能需要利用createSelectorQuery获取swiper以及scroll-view的高度,因为它们的高度都是定高的,所以可以动态计算与赋值

4.电商平台购物车流程的处理方式有哪几种,操作流程与优势不足各有哪些
购物车数据本地缓存存储模式,单设备存储与应用,切换设备将无法同步,但性能优良
以id为参数模式的操作方式
用户查看产品详情,将产品添加到购物车,而购物车中生成的是一个单一数组,类似[1,2,1,1,3,4,4]
1,2,3,4为产品id,出现的次数为购买的数量
在购物车清单页面需要进行再次的数据请求与查询
选中购物车产品等操作则增加程序复杂层度
以对象为参数模式的操作方式
用户查看产品详情,将产品添加到购物车,而购物车中生成的是一个对象数组,将会把产品整体对象传递并存储于数组当中
可以给数组对象添加count(购买数量),selected(是否选中)等属性值
在购物车清单页面不再需要进行数据请求与查询操作,减少性能开销
选中购物车产品等操作简化程序复杂层度
购物车数据远程序服务器存储模式,与本地设备无关,切换设备也可以同步数据,请求次数多,服务器压力大,性能略低下
将用户信息、产品id以及购买数量等信息作为参数进行订单接口的请求操作
由服务器端进行订单内容的查询、新增、更新与删除的操作
订单列表页则需要进行订单列表接口的请求获取与显示操作
每个商品信息任何一次变化都需要与后台接口进行交互,http请求次数巨大
5.小程序支付流程
​ 不管是小程序还是支付宝以后其它的第三方支付,其支付的主要操作流程由后台开发工程师负责,前端部分主要负责产品信息的收集、预支订单的发送、资金支付的发起、订单结果的回调等操作,并不处理负责复杂的业务逻辑操作。

用户下单以后客户端需要发请求给商家服务器端,请求下单支付
商家服务器发请求给微信服务器获取当前用户的唯一标识,生成商户订单
商家服务器端发请求给微信服务器端请求统一下单支付(获取最终的预支付订单信息)
商家服务器收到预支单的信息对该信息进行签名和加密处理
商家服务器端签名以后将支付的参数的信息返回给客户端
客户端展示给用预支单信息
用户确认支付,授权掉起支付的API(wx.requestPayment),直接发请求给微信服务器请求扣款
微信服务器扣款结束以后将支付的结果返回给客户端,客户端需要将支付的结果展示给用户看
微信服务器将支付的结果推送给商家服务器端,用于更新订单状态
6.怎样生成朋友圈小程序海报
实现类似功能的方法都差不多,就是调用小程序的 Canvas 模块
可以利用第三方插件,比如:小程序海报组件https://www.npmjs.com/package/wxa-plugin-canvas进行功能处理
7.有没有开发过小程序直播功能,操作流程是如何的
在小程序中可以进行直接功能的开启,但需要注意一些条件限制

小程序直接只支持单设备直播,不支持多镜头多设备切换直播,但它是免费的
如果需要多设备多镜头切换直接,需要自己搭建或利用第三方流媒体服务器做支撑,这将耗费极大成本
在小程序管理平台功能->直播模块可以开启直播功能


直播功能需要有小程序应用存有支付操作行业,否则不能申请直接


如果申请通过,小程序管理平台可以进行直播间的管理操作

小程序端直接间的引入与使用操作,具体:https://developers.weixin.qq.com/miniprogram/dev/framework/liveplayer/live-player-plugin.html

直播组件引入:分包与主包引入需要在不同配置文件引入配置,而且provider编号是不变的,就是wx2b03c6e691cd7370

获取直播房间列表:该接口仅供商家后台调用,调用限额500次/天,建议开发者自己做缓存(后台开发人员处理),开发者自己公司的服务器上再进行自己服务器接口的开发与提供

利用路由跳转进入直播间:

<navigator url="plugin-private://wx2b03c6e691cd7370/pages/live-player-plugin?room_id={{roomId}}&custom_params={{customParams}}"></navigator>

let roomId = [直播房间id] // 填写具体的房间号,可通过下面【获取直播房间列表】 API 获取
let customParams = encodeURIComponent(JSON.stringify({ path: 'pages/index/index', pid: 1 })) 
wx.navigateTo({
    url: `plugin-private://wx2b03c6e691cd7370/pages/live-player-plugin?room_id=${roomId}&custom_params=${customParams}`
})
// 其中wx2b03c6e691cd7370是直播组件appid不能修改

将支付的结果返回给客户端,客户端需要将支付的结果展示给用户看

微信服务器将支付的结果推送给商家服务器端,用于更新订单状态
8.怎样生成朋友圈小程序海报
实现类似功能的方法都差不多,就是调用小程序的 Canvas 模块
可以利用第三方插件,比如:小程序海报组件https://www.npmjs.com/package/wxa-plugin-canvas进行功能处理
9.有没有开发过小程序直播功能,操作流程是如何的
在小程序中可以进行直接功能的开启,但需要注意一些条件限制

小程序直接只支持单设备直播,不支持多镜头多设备切换直播,但它是免费的
如果需要多设备多镜头切换直接,需要自己搭建或利用第三方流媒体服务器做支撑,这将耗费极大成本
在小程序管理平台功能->直播模块可以开启直播功能
[外链图片转存中…(img-hWPHowG0-1694341453735)]

直播功能需要有小程序应用存有支付操作行业,否则不能申请直接
[外链图片转存中…(img-8KqMzLzX-1694341453738)]

如果申请通过,小程序管理平台可以进行直播间的管理操作

[外链图片转存中…(img-z8NrP8Yx-1694341453743)]

小程序端直接间的引入与使用操作,具体:https://developers.weixin.qq.com/miniprogram/dev/framework/liveplayer/live-player-plugin.html

直播组件引入:分包与主包引入需要在不同配置文件引入配置,而且provider编号是不变的,就是wx2b03c6e691cd7370

获取直播房间列表:该接口仅供商家后台调用,调用限额500次/天,建议开发者自己做缓存(后台开发人员处理),开发者自己公司的服务器上再进行自己服务器接口的开发与提供

利用路由跳转进入直播间:

<navigator url="plugin-private://wx2b03c6e691cd7370/pages/live-player-plugin?room_id={{roomId}}&custom_params={{customParams}}"></navigator>
1
let roomId = [直播房间id] // 填写具体的房间号,可通过下面【获取直播房间列表】 API 获取
let customParams = encodeURIComponent(JSON.stringify({ path: 'pages/index/index', pid: 1 })) 
wx.navigateTo({
    url: `plugin-private://wx2b03c6e691cd7370/pages/live-player-plugin?room_id=${roomId}&custom_params=${customParams}`
})
// 其中wx2b03c6e691cd7370是直播组件appid不能修改
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/qiaozhilian/article/details/132794100

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/620281.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OSCP靶场--RPC1

OSCP靶场–RPC1 考点 1.nmap扫描 ## ┌──(root㉿kali)-[~/Desktop] └─# nmap -sV -sC 192.168.227.236 -p- -Pn --min-rate 2500 Starting Nmap 7.92 ( https://nmap.org ) at 2024-04-14 22:21 EDT Nmap scan report for 192.168.227.236 Host is up (0.14s latency). …

移动开发避坑指南——内存泄漏

在日常编写代码时难免会遇到各种各样的问题和坑&#xff0c;这些问题可能会影响我们的开发效率和代码质量&#xff0c;因此我们需要不断总结和学习&#xff0c;以避免这些问题的出现。接下来我们将围绕移动开发中常见问题做出总结&#xff0c;以提高大家的开发质量。本系列文章…

【产品经理修炼之道】- 厂商银业务之保兑仓

保兑仓 保兑仓是指供应商、购货商、银行签订三方协议&#xff0c;以银行信用为载体&#xff0c;以银行承兑汇票为结算工具&#xff0c;由银行控制货权&#xff0c;供应商受托保管货物并对银行承兑汇票保证金以外部分以货物回购为担保措施&#xff0c;购货商随缴保证金随提货而设…

不再写满屏import导入

密密麻麻的import语句不仅仅是一种视觉上的冲击&#xff0c;更是对代码组织结构的一种考验。 我们是如何做到让import“占领满屏“的了&#xff0c;又该如何优雅地管理这些import语句呢&#xff1f; 本文将从产生大量import语句的原因、可能带来的问题以及如何优化和管理impo…

Windows上的类似clock_gettime(CLOCK_MONOTONIC)的高精度测量时间函数

2024年4月11更新 感谢评论提醒&#xff0c;我之前写《如何在C/C中测量一个函数或者功能的运行时间&#xff08;串行和并行&#xff0c;以及三种方法的实际情况对比&#xff09;》的时候只实验了 Linux 和 Mac 这种类 Unix 系统&#xff0c;没考虑到 Windows。 本文只考虑第一方…

总结java中的synchronized锁

目录 synchronized的特性 synchronized的锁机制 synchronized的使用 synchronized的特性 synchronized主要有三大特性&#xff1a; 面试时经常拿synchronized关键字和volatile关键字的特性进行对比&#xff0c;synchronized关键字可以保证并发编程的三大特性&#xff1a;原子…

yolo系列(之一)

深度学习经典检测算法 two-stage (两阶段) : Faster-rcnn Mask-Rcnn系列 &#xff08;输入图像---》CNN特征---》预选框---》输出结果&#xff09; one-stage (单阶段): YOLO系列 &#xff08;输入图像---》CNN特征---》输出结果&#xff09; one-stage的特点&#xff1a;&…

python计算

优先级&#xff1a;小括号&#xff08;&#xff09;>幂运算&#xff08;指数&#xff09;>正负号>算术运算&#xff08;先乘除后加减&#xff09;>比较运算>逻辑运算

网络基础(二)——传输层

1、再谈端口号 端口号(Port)标识了一个主机上进行通信的不同的应用程序; 在TCP/IP协议中, 用 "源IP", "源端口号", "目的IP", "目的端口号", "协议号" 这样一个五元组来标识一个通信(可以通过 netstat -n查看); 1.1、端口号…

【详细讲解下Photoshop】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

第十五届蓝桥杯c++b组赛后复盘和真题展示

题目变成八道了&#xff0c;分数一百分可能&#xff0c;感觉拿奖难度还是很高 第一题是一个简单的握手问题 答案算出来1204&#xff0c;纯手写 第二题是 物理题 纯蒙&#xff0c;随便猜了个轨迹&#xff0c;答案具体忘了&#xff0c;最后是 .45 第三题暴力 第四题 我是傻逼…

jenkins 宝塔部署及集成到码云自动构建代码

jenkins 宝塔部署及集成到码云自动构建代码 ps:本文所有涉及软件包一键下载 一、Jenkins包下载 大家可以从Jenkins官网(https://www.jenkins.io/)根据自己的需要下载最新的版本。 但Jenkins官网下载较慢,容易造成下载失败。可以去国内的开源镜像网站下载Jenkins最新版本。…