时里院子市集
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

5.3 KiB

首页分享链接白屏问题测试指南

问题描述

用户从分享的首页链接点击进入时,页面显示"加载中..."后出现白屏,但商品详情页分享链接正常。

问题根因分析

  1. 邀请参数处理阻塞:首页加载时会检查邀请关系,如果API调用失败或超时,可能导致页面卡住
  2. 缺少超时保护:邀请关系处理没有合适的超时机制
  3. 错误处理不完善:网络错误时没有降级处理

修复内容

已对以下文件进行修复:

1. src/pages/index/index.tsx

  • 添加邀请关系处理的超时保护(8秒)
  • 邀请处理失败不阻塞页面正常显示
  • 改进错误日志记录

2. src/utils/invite.ts

  • handleInviteRelation: 添加API调用超时(5秒)
  • checkAndHandleInviteRelation: 添加整体超时保护(6秒)
  • 添加失败重试计数,避免无限重试
  • 区分网络错误和业务错误的处理策略

测试步骤

准备工作

# 重新编译项目
npm run build:weapp

# 或启动开发模式
npm run dev:weapp

测试用例1:正常首页分享链接

  1. 操作步骤

    • 在小程序首页点击分享
    • 分享给微信好友或群聊
    • 从分享链接点击进入
  2. 预期结果

    • 页面应该正常加载,不出现长时间白屏
    • 如果有邀请参数,应该在后台处理,不影响页面显示
    • 控制台应该有相关日志输出

测试用例2:网络异常情况

  1. 操作步骤

    • 在微信开发者工具中设置网络为"离线"或"慢速"
    • 从首页分享链接进入
  2. 预期结果

    • 页面应该能正常显示基本内容
    • 邀请关系处理超时后不影响页面
    • 控制台显示超时错误日志

测试用例3:带邀请参数的分享链接

  1. 操作步骤

    • 使用带邀请参数的链接(如从经销商分享的链接)
    • 点击进入首页
  2. 预期结果

    • 页面正常加载
    • 邀请关系在后台处理
    • 处理成功或失败都不影响页面显示

调试方法

1. 查看控制台日志

在微信开发者工具的控制台中查看以下日志:

// 正常情况下应该看到:
"检测到待处理的邀请关系"
"使用用户ID处理邀请关系: [用户ID]"
"首页邀请关系处理成功"  "首页邀请关系处理失败"

// 超时情况下应该看到:
"邀请关系处理超时,清除邀请参数"
"邀请关系处理整体超时"

2. 手动测试邀请参数

在控制台中执行:

// 查看当前邀请参数
console.log('邀请参数:', Taro.getStorageSync('invite_params'))

// 查看用户信息
console.log('用户ID:', Taro.getStorageSync('UserId'))

// 手动触发邀请关系处理
import { checkAndHandleInviteRelation } from '@/utils/invite'
checkAndHandleInviteRelation().then(result => {
  console.log('手动处理结果:', result)
})

3. 清除测试数据

如果需要重置测试环境:

// 清除邀请相关数据
Taro.removeStorageSync('invite_params')
Taro.removeStorageSync('invite_handle_fail_count')

// 清除邀请关系记录
const keys = Taro.getStorageInfoSync().keys
keys.forEach(key => {
  if (key.startsWith('invite_relation_')) {
    Taro.removeStorageSync(key)
  }
})

性能验证

页面加载时间测试

// 在首页组件中添加性能监控
const startTime = Date.now()

useEffect(() => {
  // 页面加载完成后
  const endTime = Date.now()
  console.log('首页加载耗时:', endTime - startTime, 'ms')
}, [])

预期性能指标

  • 正常情况:首页应在2秒内完成基本加载
  • 网络异常:即使邀请处理失败,页面也应在10秒内显示
  • 超时保护:邀请处理最多8秒后自动放弃

验证清单

  • 基础功能

    • 首页分享链接可以正常打开
    • 页面内容正常显示
    • 不出现长时间白屏
  • 邀请功能

    • 带邀请参数的链接正常处理
    • 邀请处理失败不影响页面显示
    • 超时保护机制正常工作
  • 错误处理

    • 网络异常时页面仍可访问
    • 错误日志正常记录
    • 失败重试机制正常
  • 性能表现

    • 页面加载时间在可接受范围
    • 邀请处理不阻塞主要功能
    • 内存和存储使用合理

常见问题排查

问题1:仍然出现白屏

可能原因

  • 代码未正确编译
  • 缓存未清理
  • 其他组件加载问题

解决方法

# 清理缓存并重新编译
rm -rf dist/
npm run build:weapp

问题2:邀请关系处理失败

可能原因

  • API接口问题
  • 用户信息获取失败
  • 网络连接问题

解决方法

  • 检查API接口状态
  • 确认用户登录状态
  • 查看网络请求日志

问题3:页面加载缓慢

可能原因

  • 邀请处理超时时间过长
  • 其他API调用阻塞

解决方法

  • 调整超时时间设置
  • 优化API调用顺序

成功标准

修复成功的标志

  1. 从首页分享链接进入不再出现长时间白屏
  2. 邀请参数处理在后台进行,不阻塞页面显示
  3. 网络异常时页面仍能正常访问
  4. 控制台日志显示正常的处理流程
  5. 页面加载时间在合理范围内

如果以上标准都满足,说明首页分享链接白屏问题已经解决。