当前位置:首页>鸿蒙APP>鸿蒙 ArkTS 数组渲染&列表优化(ForEach、LazyForEach 区别)

鸿蒙 ArkTS 数组渲染&列表优化(ForEach、LazyForEach 区别)

  • 2026-07-08 08:21:41
鸿蒙 ArkTS 数组渲染&列表优化(ForEach、LazyForEach 区别)

一、前言

在鸿蒙项目开发中,列表渲染是使用率最高的功能,无论是商品列表、消息列表、首页信息流、个人订单,全部依赖循环渲染组件实现。

ArkTS 官方提供两种列表循环渲染方案:ForEach 与 LazyForEach。绝大多数新手开发者只会无脑使用ForEach,看似简单便捷,实则埋藏大量性能隐患,上线商用项目后频繁出现各类问题:

  • 少量数据正常渲染,数据超过100条直接页面卡顿、滑动掉帧;

  • 数据更新后全局刷新列表,不必要的组件重复重建;

  • key绑定错误引发数据错乱、复用组件数据重叠;

  • 长列表一次性加载全部DOM节点,内存占用飙升;

  • 分不清两种渲染组件底层逻辑,不知道长列表该如何选型。

今天这篇文章,我从底层源码层面拆解 ForEach 和 LazyForEach 核心差异,详解适用场景、渲染机制、key优化方案,附赠商用级长列表完整优化方案,帮你彻底解决鸿蒙列表卡顿、内存溢出难题。

二、两种渲染组件核心对照表

开发选型优先参考下表,短列表、长列表精准匹配,拒绝盲目开发:

对比维度

ForEach

LazyForEach

加载机制

一次性全量加载所有数据

懒加载机制,可视区域加载+预加载

内存占用

高,所有节点常驻内存

极低,销毁非可视区域组件

刷新机制

无差异化更新,易全局重渲染

差异化更新,精准刷新变更Item

组件复用

无复用机制

内置Item缓存池,复用组件实例

适用场景

静态短列表(1-50条以内)

动态长列表(50条以上、无限滚动)

开发难度

简单,直接绑定数组

中等,需封装数据适配器

三、底层渲染原理详解

3.1 ForEach 渲染原理

ForEach属于静态循环渲染,初始化时会遍历全部数组,一次性创建所有UI组件并挂载至渲染树。哪怕条目处于屏幕外不可见状态,组件也不会销毁,常驻内存。

数据发生变更时,若key配置不当,框架会直接销毁全部组件、重新创建,造成大规模无效重渲染,这也是长列表卡顿的根本原因。

3.2 LazyForEach 渲染原理

LazyForEach是鸿蒙官方专为长列表打造的懒加载动态渲染组件,依托数据源适配器管理数据:

  1. 仅加载屏幕可视区域内的Item;

  2. 上下预留缓冲区域,提前预加载即将展示条目;

  3. 划出屏幕的组件自动销毁,回收内存;

  4. 内置组件缓存池,滚动时复用Item实例,减少DOM创建开销。

四、最终实现效果

  1. ✅ 掌握ForEach基础用法、key正确绑定方案;

  2. ✅ 封装通用LazyForEach适配器,开箱即用;

  3. ✅ 实现长列表无限加载、按需刷新、组件复用;

  4. ✅ 规避key重复、key索引绑定等高频致命bug;

  5. ✅ 学会长列表全方位性能优化方案,适配百万级数据;

  6. ✅ 全套源码适配API10+,可直接投产商用项目。

五、完整可运行源码

5.1 ForEach 基础用法(短列表最优解)

适用于设置项、标签列表、简单静态短列表,数据量50条以内场景。重点:禁止用索引作为key

@Entry@Componentstruct ForEachDemo {  // 模拟列表数据  @State dataListnumber[] = [1020304050];  build() {    Column({ space0 }) {      Text("ForEach 短列表渲染")        .fontSize(20)        .padding(15)      List() {        ForEach(this.dataList(itemnumber) => {          ListItem() {            Text(`列表条目:${item}`)              .width("100%")              .height(60)              .textAlign(TextAlign.Center)              .fontSize(16)          }        }, (itemnumber) => item.toString()) // 最优key:绑定唯一业务ID      }      .width("100%")    }  }}

5.2 封装通用Lazy数据源适配器

新建 common/BaseDataSource.ets,封装通用懒加载数据源,所有长列表直接复用,无需重复编写适配器代码。

import { LazyDataSourceDataChangeListener } from '@ohos.arkui.data';export class BaseDataSource<T> implements LazyDataSource {  // 存储列表数据  private dataArray: T[] = [];  // 事件监听池  private listenerSetSet<DataChangeListener> = new Set();  // 更新全部数据  setAllData(list: T[]) {    this.dataArray = list;    // 通知UI全局刷新    this.listenerSet.forEach(item => item.onDataReloaded());  }  // 追加数据(分页加载专用)  addData(list: T[]) {    const oldLength = this.dataArray.length;    this.dataArray.push(...list);    // 精准通知新增条目刷新    this.listenerSet.forEach(item => item.onDataAdded(oldLength, this.dataArray.length - 1));  }  // 获取单条数据  getData(indexnumber): T {    return this.dataArray[index];  }  // 获取数据总条数  getTotalCount(): number {    return this.dataArray.length;  }  // 注册数据监听  registerDataChangeListener(listenerDataChangeListener): void {    this.listenerSet.add(listener);  }  // 注销数据监听  unregisterDataChangeListener(listenerDataChangeListener): void {    this.listenerSet.delete(listener);  }}

5.3 LazyForEach 长列表实战(分页+无限加载)

import { BaseDataSource } from './common/BaseDataSource';// 模拟实体数据interface ListItem {  idnumber;  contentstring;}@Entry@Componentstruct LazyForEachDemo {  // 初始化懒加载数据源  private dataSourceBaseDataSource<ListItem> = new BaseDataSource();  // 当前页码  @State pagenumber = 1;  // 加载状态  @State isLoadingboolean = false;  aboutToAppear() {    // 初始化第一页数据    this.getPageData();  }  // 模拟分页请求数据  getPageData() {    this.isLoading = true;    setTimeout(() => {      const tempListListItem[] = [];      for (let i = 1; i <= 20; i++) {        tempList.push({          id: (this.page - 1) * 20 + i,          content`第${this.page}页 - 条目${i}`        })      }      // 追加数据      this.dataSource.addData(tempList);      this.page++;      this.isLoading = false;    }, 800)  }  build() {    Column() {      Text("LazyForEach 长列表无限加载")        .fontSize(20)        .padding(15)      List() {        LazyForEach(this.dataSource(itemListItem) => {          ListItem() {            Column() {              Text(item.content).fontSize(16)              Text(`ID:${item.id}`).fontSize(12).fontColor("#999")            }            .width("100%")            .padding(15)            .alignItems(HorizontalAlign.Start)          }        }, (itemListItem) => item.id.toString())      }      .width("100%")      // 触底加载      .onReachEnd(() => {        if (!this.isLoading) {          this.getPageData();        }      })      // 加载提示      if (this.isLoading) {        Text("加载中...")          .width("100%")          .height(50)          .textAlign(TextAlign.Center)      }    }    .width("100%")    .height("100%")  }}

六、高频致命坑点解析

6.1 ForEach 禁止使用索引作为key

很多新手写法:ForEach(array, (item,index) => {}, index=>index)。数组执行删除、置顶、排序操作后,索引会重新分配,导致key错乱,出现UI复用错误、数据绑定异常、条目内容重叠。

解决方案:始终使用业务唯一ID(id、uuid)作为key。

6.2 LazyForEach 无法直接绑定普通数组

LazyForEach不支持直接接收原始数组,必须实现LazyDataSource接口,目的是让开发者精准管控数据刷新范围,避免全局无差别重渲染,这也是长列表性能优化的核心。

6.3 频繁刷新导致列表滚动重置

误用ForEach承载上万条数据,每次数据变更销毁重建所有组件,列表滚动位置强制归零。商用长列表必须强制使用LazyForEach。

6.4 缓冲区域配置不合理

缓冲过小导致滑动白屏,缓冲过大丧失懒加载意义。推荐配置:上下缓冲各5个条目,适配绝大多数手机机型。

七、长列表全方位优化方案

  1. 组件选型优化:50条以内静态短列表用ForEach,50条以上动态/分页列表统一用LazyForEach;

  2. Key值优化:所有循环条目绑定唯一业务ID,杜绝索引绑定;

  3. Item结构优化:ListItem内部层级扁平化,减少嵌套组件,降低渲染耗时;

  4. 图片资源优化:列表内图片固定宽高、开启内存缓存、禁止动态自适应宽高;

  5. 数据刷新优化:LazyForEach优先使用addData、updateData局部刷新,禁止setAllData全局重载;

  6. 滚动优化:滚动过程中暂停复杂动画、关闭高频重渲染逻辑,滚动结束再恢复。

八、选型终极口诀

  • 短小静态列表,数据固定不变,直接用 ForEach

  • 长列表、分页、无限加载,无脑上 LazyForEach

  • key值绝不写index,业务ID是首选;

  • 长列表卡顿99%,都是选错渲染器。

九、总结

列表渲染是鸿蒙商业项目性能优化的重中之重,选对渲染组件、规范编码写法,能直接规避80%的列表卡顿、内存溢出问题。

ForEach开发简单但性能孱弱,仅适合短列表展示;LazyForEach开发稍复杂,但懒加载+组件复用+差异化更新的底层机制,是长列表开发的唯一标准答案。

本篇封装的BaseDataSource通用适配器,可直接接入任意商用项目,无需二次改造,一站式解决所有长列表开发难题。

请多多关注!

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-17 02:42:01 HTTP/2.0 GET : https://c.mffb.com.cn/a/491148.html
  2. 运行时间 : 0.194366s [ 吞吐率:5.14req/s ] 内存消耗:4,540.40kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=101e7d03f7d128a904585a8b218930d0
  1. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/runtime/temp/cefbf809ba1a84190cb04b0cb7abcf79.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.004500s ] mysql:host=127.0.0.1;port=3306;dbname=c_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000859s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.012291s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000948s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000745s ]
  6. SELECT * FROM `set` [ RunTime:0.000753s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000681s ]
  8. SELECT * FROM `article` WHERE `id` = 491148 LIMIT 1 [ RunTime:0.005219s ]
  9. UPDATE `article` SET `lasttime` = 1784227321 WHERE `id` = 491148 [ RunTime:0.008151s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000624s ]
  11. SELECT * FROM `article` WHERE `id` < 491148 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001821s ]
  12. SELECT * FROM `article` WHERE `id` > 491148 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.006813s ]
  13. SELECT * FROM `article` WHERE `id` < 491148 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.008387s ]
  14. SELECT * FROM `article` WHERE `id` < 491148 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.032993s ]
  15. SELECT * FROM `article` WHERE `id` < 491148 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.006306s ]
0.196248s