Actions
其他 #453
open
JZ
JZ
v4.0: Optimizations + Remaining Tasks
其他 #453:
v4.0: Optimizations + Remaining Tasks
Start date:
02/07/2025
Due date:
12/31/2026 (Due in about 10 months)
% Done:
90%
Estimated time:
100.00 h
Description
Background
- 记录在开发OTS4.0过程中需要讨论的特殊处理
- 1. 不同设备的差异
1.1 IOS:
- Order list will scroll in two directions.(IOS较为明显)
- Current filter中的setup new filter未focus到filter name上(只有第一次加载My-filter时未focus到filter name)。1.2 Android:
- Edge中的icon默认实心(fill:1)。Chrome没有此类问题。
- 2. Order List / Detail的优化
2.1 SQL优化(List速度较慢,需要排查慢查询的原因),Detail打开很慢并且有跳闪的感觉。
2.2 v3的历史订单独立表(因为不是活跃的数据)ots_order_product_history(数据大的extra info, legacy info 等都可以独立出去)
另外:legacy_info字段text → VARCHAR (512) 我猜这里数据不再有变化。SQL查询如下:
-- 如果 legacy_info 内容“短且可控”,TEXT → VARCHAR 不但能省空间,还更快、更好索引、更友好 SELECT MAX(CHAR_LENGTH(legacy_info)) AS max_len, AVG(CHAR_LENGTH(legacy_info)) AS avg_len, SUM(CHAR_LENGTH(legacy_info) > 512) AS over_512_cnt FROM ots_order_product; -- 结果 -- max_len = 407 -- avg_len = 299.9318 -- over_512_cnt = 0
- 3. 移动端打印方案优化 #491
3.1 打印代理服务器polling(3s轮询是否有打印任务) -> 阻塞式消息订阅(Redis Stream)
- 4. 页面加载优化
4.1 DONE Image的懒加载机制(loading="lazy" decoding="async")
4.2 To-do prefetch + prerender + speculation rules等等
4.3 To-do 最小化加载css,js, 比如:html2canvas.min.js 只在mobile中加载,并统一添加版本号(可以cache)
- 5. 所有的临时目录都有清理机制:比如temp目录读写的时候,删除48小时前的文件和文件夹
举例:/efs/ots4.0/storage/upload/order/2026/temp
- 9. UI 优化(优先级最低)
9.1 手机端order list中长按功能: 科参考一些App 的做法,长按后突出显示当前选中内容,
在当前行的上方、下方显示可操作的下拉列表(取代当前简易版的Popover)。 需调研web端是否能够实现。
- 1. 添加DOM对象的时候,先隐藏然后复制
1.1 web/catalog/model/account/order_filters_v3.php row 78
1.2 web/catalog/model/account/order_v3.php row 233Niko:
1. 避免DOM元素提前加载,保持PHP model数据层数据整洁。修改原来JS clone新增元素的方式为JS动态创建。
2. 动态加载元素的语言包:各自定义在各自的twig中,共通的则写在footer.twig中
- 2. 不同设备的差异
2.1 IOS:
- Date类型在IOS中的显示问题
1)默认水平居中(期待值:和Android一样,左对齐)
2)默认垂直偏上(期待值:和Android一样,居中对齐)
3)点击Reset, 期待为清空, 当前恢复为初始值日期
- 3. Session机制: file -> redis
3.1 error.log session相关的两个问题:
- PHP Notice: Error: session file size is 0 : /var/www/html/storage/session/sess_ed565225ec4097c33086dd03eb in /var/www/html/ots4.0/system/library/session/file.php on line 28 - PHP Unknown: Automatic conversion of false to array is deprecated in /var/www/html/ots4.0/catalog/controller/startup/startup.php on line 94
- Git提交
#xxx(redmine number): xxx(redmine title) - xxx(任意:补充内容)
- 代码规范
2.1: 结构:Public -> Protected -> Private
2.2: 其他代码规范同SBX
- MVCL的v3/v4物理分割
3.1: v3/v4的代码分为两个文件,比如: order.php, order_v3.php
3.2: system也分为两个文件,暂时只有一个user_v3
- Note: front的$this->user在v4中会替换为$this->customer, 即v4中需要清除$this->user
3.3: 代码中,区分v3/v4的调用,比如:new User_V3
- 前台代码
twig, js, css (js, css尽量写在单独的css文件中)
- 后台代码
MVCL (L:en,cn)
- 注释
- 类名:
/** * xxx * * @copyright RedBlue-OTS 2024 * @version v4 * */
- 函数名:参数类型 + 返回值类型
/** * xxx * * @param xxx $xxx * @param xxx $xxx * @return xxx */
- 类名:
- Report and Solution
Others
Files
Actions