乐于分享
好东西不私藏

app.js 里那个 App(),为什么只能调一次?

app.js 里那个 App(),为什么只能调一次?

各位产品、运营、还有深夜对着红屏报错「App() must be called…」的攻城狮朋友们,大家好。我是做小程序架构的老工程狮 👋

你有没有遇到过这种场面:测试同事换了个入口场景——比如从分享卡片、扫码、或通知中心再次唤起小程序——结果页面一闪白,控制台多了一行刺眼的提示,逻辑像断了线:登录态没续上、全局数据清零、埋点重复计数。追到最后,根子都在 app.js:要么没注册,要么注册了不止一次,要么把“初始化”当成了“随缘异步”。

微信官方文档把这件事讲得很硬,但很关键:

每个小程序都需要在 app.js 中调用 App() 方法注册小程序实例,绑定生命周期回调、错误监听和页面不存在监听函数等;并且 App() 必须在 app.js 中调用,必须且只能调用一次,不然会出现无法预期的后果。

今天咱们不搞背诵,把这行话拆开:它到底在“注册”什么、生命周期怎么跟用户前台/后台对应、onError/onPageNotFound 怎么兜底、以及我见过最毁稳定性的几种写法怎么改。


一、App() 不是“随便执行个函数”,而是把程序交出去

(1)小程序只有一个“全局实例”,入口不是 main(),是 App()

网页里你可以 N 个 script 标签、N 次 new Vue(),谁先ready谁说了算。

小程序逻辑层是一份 JS 文件从头跑(更像 ServiceWorker),框架要求你在 app.js 里显式声明:

js

// app.jsApp({  onLaunch(options) {},  onShow(options) {},  onHide() {},  onError(msg) {},  globalData: { token''userInfonull }})

这里的 App() 不是帮你“创建对象”,而是注册程序:框架读到 app.js 执行到这一句,才真正把小程序全局实例挂起来,生命周期管线才开始转。

所以它才咬死两条:

  1. 必须在 app.js(不让你把“程序注册”藏到 pages/ 里某个文件、或按需懒加载)

  2. 只能一次(不是“建议单例”,是硬性约束——二次调用直接给你“未定义行为”警告)

(2)为什么“只能一次”不是小题大做

如果允许多次注册,就会变成:

A 页逻辑 require 了别的模块,模块侧又偷偷 App();热重载/分包加载路径再一抖——全局实例被覆盖、生命周期重复绑、globalData 被重置……用户侧表现就是:切后台再回来状态丢了、onLaunch 突然跑两遍、甚至白屏。

所以这条铁律本质是在保护一件事:

全局状态与全局管线,只能有一条,且必须在框架能找到的地方(app.js)钉死。


二、生命周期:不是“页面加载”,是“程序活着”的三段节奏

很多团队把 onLaunch 当“页面 onLoad 的放大版”,结果把接口、埋点、一次性重算全塞进去,导致首屏被拖慢。看清语义,比背时机更重要。

(1)onLaunch:全局只一次,干“一次性基建”

官方定义:小程序初始化完成时触发,全局只触发一次

参数 options里你最该关注的不是“用户是谁”,而是入口场景scene / query / path / referrerInfo——它回答了“这趟小程序是怎么被打开的”(扫码?分享卡?通知?)。

我建议的纪律:

  • ✅ 轻量探测:scene 分发、灰度开关、版本/渠道记录、隐私协议是否已同意

  • ❌ 别在这里写“必须等到接口回来才让首页渲染”的同步锁——你正在拖冷启动

js

App({  onLaunch(options) {    // 正确姿态:记录入口信息,而不是卡住世界    this.globalData.launchScene = options.scene    if (!wx.getStorageSync('PRIVACY_AGREED')) {      // 进阶建议:这里只做“事实记录”,真正弹窗/跳转最好交给首页 onShow 判断    }  },  globalData: { launchScene0token'' }})

(2)前台/后台的真实定义:不是“关了”,是“离开微信前台”

文档给的前后台定义很实用:关闭/Home 键离开微信并不意味着销毁,常见是进入后台;只有在后台太久或资源高才真正销毁重来。

对应到回调就是:

  • onShow:启动 / 从后台回到前台 → 适合做“每次可见都要拉”的轻量刷新

  • onHide:前台切后台 → 适合做“离开前保存/停止定时器/结束不必要轮询”

老工程狮经验:

别在 onShow 里无脑 wx.request刷一大坨不变数据,否则用户每次切回来都白等一轮;先把“是否需要刷新”的条件想清楚(时间戳阈值/脏标记/对比版本号)。


三、onError + onUnhandledRejection:别让线上事故“静默”

(1)onError(msg):脚本错误 / API 调用报错的统一出口

官方说明:小程序发生脚本错误或 API 调用报错时触发,并带上错误信息。

它最适合做的事只有一件:把它变成证据——打本地日志/写到上报队列,而不是弹框吓用户。

js

App({  onError(msg) {    // 1) 本地先留痕(环形队列防爆)    try {      const logs = wx.getStorageSync('_err_q') || []      logs.push({ t: Date.now(), msg: (msg||'').slice(0,800) })      if(logs.length > 20) logs.shift()      wx.setStorageSync('_err_q', logs)    } catch(e) {}    // 2) 异步上报(别用 await 阻塞生命周期)    wx.request({ url'https://log.xxx.com/err', method:'POST', data:{ msg } })  }})

(2)onUnhandledRejection:Promise 的“最后防线”

从基础库 2.10.0 起支持:Promise 拒绝但没人 catch 时,会到这里。

它往往比 onError 更隐蔽:代码没语法炸,但逻辑“悄悄失败”(比如接口封装成 Promise 后忘记 then/catch)。

进阶建议:

这两个钩子定位是“兜底日志/告警”,别在里面再跑一套会抛错的复杂链路,不然日志系统自己就循环了。


四、onPageNotFound:把“404”变成可控的降级,而不是用户一脸懵

官方:小程序要打开的页面不存在时触发(比如活动页下线、路径拼错、动态 url 里 page 写错)。

js

App({  onPageNotFound(res) {    // res.path / res.query 能看到它想去哪    // 如果是 tab 页,要用 switchTab;普通页才 redirectTo    wx.redirectTo({ url'/pages/home/index' })  }})

进阶建议(建设性):

对业务而言,onPageNotFound 的价值是保护转化路径——让用户掉到首页/兜底页,而不是直接卡死白屏。同时把 res.path上报,你才能发现:到底是代码发布的路径改漏了,还是运营分享卡里带了过期页面参数。


五、globalData 与 getApp():能碰,但得定规矩

(1)globalData 是“全局可见储物柜”,不是“随便塞的杂物间”

适合放:登录态 token、脱敏后的 userId、环境开关、launchScene。

不适合放:整页列表数据、表单草稿、UI 状态(这些应在页面/组件 data)。

(2)getApp() 的两条红线(官方也点到为止)

官方提醒过:

  • 不要在 App() 内定义的函数里、或 App 调用前 调用 getApp()

  • 拿到实例后,不要私自调用生命周期函数

人话版:

getApp()用来读全局状态/工具函数就够了;别把它当“跨页通信总线”到处 getApp().globalData.xxx=yyy然后指望别人知道你改了啥。要通信就走事件/状态管理/显式函数,别暗箱。


六、最常见的“毁约”写法(以及怎么收回来)

翻车 1:把 App() 包进条件/异步里

有人写:

js

// ❌ 错误氛围if (someFlag) { App({...}) }// 或setTimeout(() => App({...}), 0)

结果框架在“预期注册期”没见到实例,后续行为就看运行时脸色了。

✅ 收回来:App() 放 app.js 顶层同步调用,内部再按条件走分支。

翻车 2:在 app.js 里引了某个 page 级模块,模块又偷偷依赖 App 已存在

形成“先有鸡还是先有蛋”的脆弱链。

✅ 收回来:app.js 只做全局初始化;页面级逻辑不反向依赖 app.js 的执行时序,依赖只通过 getApp()读 globalData/方法。

翻车 3:onLaunch 里塞重同步任务,导致首屏被拖

表现为:低端机白屏时间明显变长。

✅ 收回来:把“必须刷新的数据”做成可等待令牌/脏标记,首页 onShow 自己决定要不要刷,onLaunch 只负责写标记。


七、结束语

App() 看起来就一行,却是小程序整个生命周期管线的唯一开关:它在 app.js、只能一次、它绑定 onLaunch/onShow/onHide 的节奏、它也给你 onError/onUnhandledRejection/onPageNotFound 的兜底口子。

你守好它的纪律——不二次调、不同步锁死、不暗箱全局写——全局状态就稳,首屏就轻,用户从入口到成交的路径就不容易“莫名其妙断线”。


参考文献

[1] 微信团队. 逻辑层 App Service——注册小程序(每个小程序都需要在 app.js 中调用 App 方法…)[EB/OL]. (更新日期见页面底部版本信息)[2024-06-16 引用确认]. https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/app.html.

[2] 微信团队. App(Object object)(App() 必须在 app.js 中调用,且只能一次;参数:onLaunch/onShow/onHide/onError/onPageNotFound/onUnhandledRejection…)[EB/OL]. (更新日期见页面底部版本信息)[2024-06-16 引用确认]. https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html.

[3] GB/T 25000.51-2016, 系统与软件工程 系统与软件质量要求和评价(SQuaRE) 第51部分:就绪可用软件产品(RUSP)的质量要求和测试细则 [S]. 北京:中国标准出版社,2017.


💬 互动话题

你们项目里 onError / onPageNotFound 现在有没有接上报?还是说至今还是 console.log躺平版?评论区留一句你见过最“安静爆炸”的线上事故(白屏/状态清零/分享卡打不开),我挑几个典型,顺着 App() 的时序给你画一张「从入口场景→onLaunch→onShow→兜底」的落地 Checklist,照着补齐,入口稳定性基本就锁住了👇

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