乐于分享
好东西不私藏

没有window!搞懂小程序逻辑层App Service

没有window!搞懂小程序逻辑层App Service

各位产品大大、运营同学,还有深夜在开发者工具里敲 console.log(window)结果拿到 undefined的攻城狮们,大家好。我是做小程序底层架构与性能优化的老工程狮。

先问一句:你第一次写小程序时,有没有下意识想用 document.getElementById抓个节点,结果报了个让你怀疑人生的错?

我见过最经典的"新人翻车现场":把 H5 项目的核心动效用 $('#id').animate()搬进来,最后页面不动、控制台飘红——然后对着空荡荡的全局对象发呆半天。

其实不是你手生了,而是你正站在一个关键分界线上小程序的逻辑层,根本不在浏览器里跑。今天咱们把这块"大脑"剖开,讲清楚它到底在什么环境、拿什么当武器,以及怎么用它写出稳、快、合规的代码。


一、它在哪跑:类似 ServiceWorker,但不是浏览器页

微信官方文档对逻辑层的定位写得非常直白:

小程序开发框架的逻辑层使用 JavaScript 引擎,为小程序提供 JS 代码的运行环境以及微信小程序的特有功能。逻辑层将数据进行处理后发送给视图层,同时接受视图层的事件反馈。开发者写的所有代码最终将会打包成一份 JavaScript 文件,并在小程序启动的时候运行,直到小程序销毁。这一行为类似 ServiceWorker,所以逻辑层也称之为 App Service。

关键结论只有一句——

渲染层(View) 用 WebView 负责画界面(WXML + WXSS),它更像"浏览器页面",但也不是让你随便进 DOM 厨房乱翻。

逻辑层(App Service) 跑在 JavaScript 引擎(iOS 常见 JSCore,Android 对应宿主实现)里,没有浏览器的 window / document / DOM

(1)"类似 ServiceWorker"这句比喻在说什么?

ServiceWorker 给人的直觉是:常驻、独立于页面 DOM、充当服务进程角色。小程序逻辑层也是这个气质:

  • 它是"全局服务中心"(App 级生命周期在这里)

  • 它不画 UI,但决定 UI 应该长什么样的数据(state)

  • 它把数据"下发"给渲染层;渲染层把"用户点了哪"的事件"上传"回来

你可以把它理解为:一个专门为小程序定制的、带微信原生能力的"无界面 JS 服务进程"

(2)所以 window和 document去哪了?

官方直接给了这句话:

注意:小程序框架的逻辑层并非运行在浏览器中,因此 JavaScript 在 web 中一些能力都无法使用,如 windowdocument等。

这意味着——

  • 想改界面?别抓节点,走 this.setData(...)(数据驱动)

  • 想用 windowlocationhistorylocalStorage(Web 版)?没有,也别幻想 polyfill 出一个假 DOM/BOM 来硬跑

  • 想用 jQuery / Zepto(依赖 DOM/BOM)?基本跑不了,请把它们从依赖里请出去

这不是阉割,是把 UI 所有权从 JS 手里收走,逼你走更可维护的数据驱动通道。短期疼一下,长期少大量"界面状态打架"的 Bug。


二、微信在 JS 基础上"加了什么":入口、全局、页面、API

同样来自官方文档,框架在 JavaScript 基础上扩出来的"小程序专属装备",核心就这几样:

(1)App():总控室(app.js 必须且只能调一次)

js

// app.jsApp({  globalData: {    userInfonull,    token''  },  onLaunch(options) {    // 小程序初始化:全局只一次    // 进阶建议:适合做轻量探测(是否已登录/设备信息收集)    // 别塞同步重计算或大循环,会拖慢首屏  },  onShow() { /* 从后台切回前台 */ },  onHide() { /* 切到后台 */ },  onError(msg) { console.error(msg) }})

要点就两个:

  • App()必须在 app.js中调用,且只能调用一次,不按规矩来会有"未定义行为"

  • 你挂在 globalData上的东西,就是小程序级别的"共享仓库"

进阶建议(别把 globalData 用成垃圾场): 只放真的需要跨页共享且可序列化的状态(登录态、少量配置)。业务数据尽量留在页面/组件作用域内;跨页通信优先用事件/状态管理,而不是"随便哪个页面都去 getApp().globalData.xxx = yyy"。

(2)Page():每个页面的剧本

js

// pages/index/index.jsPage({  data: {    motto'Hello MINA'  },  onLoad(query) {    // query = 打开本页的参数(扫码/分享带过来的 scene 等)  },  onShow() {},  handleTap() {    this.setData({ motto'Hi WeChat' })  }})

规则很清晰:

  • data是本页真相源

  • 界面绑定 {{motto}};你改就走 setData,别去"抓节点改样式"

  • 生命周期(onLoad / onShow / onReady / onHide / onUnload)把"页面什么时候活着"给你管明白

(3)getApp():拿全局实例(读多写少原则)

官方给出 getApp()用来拿你在 App()里注册的总实例:

js

const app = getApp()console.log(app.globalData.token)

进阶建议: 用 getApp().globalData读配置/读登录态,没问题;但尽量少在页面深处写 getApp().globalData.xxx = yyy(写操作最好收敛到一两个 service 模块里),否则调试时很难追溯:到底谁把状态改崩了?

(4)getCurrentPages():页面栈的 X 光片(看,但慎动手)

官方明确给出:getCurrentPages()可获取当前页面栈实例数组,按顺序排,最后一项就是当前页;并提示:仅用于展示/读取,勿修改页面栈

js

const pages = getCurrentPages()// pages[pages.length - 1] === 当前页实例(可读取其 route / data)

进阶建议(很重要): 别拿它做"跨页强制赋值"(例如 pages[pages.length-2].setData(...)依赖隐式栈关系当日常通道),否则页面栈一变逻辑就脆。更稳的跨页通信:让目标页在 onShow里自己去读"待消费消息",而不是别人隔着栈去掀被子。

(5)wx.*API:逻辑层真正的特权通道

提供丰富的 API,如微信用户数据、扫一扫、支付等微信特有能力。

因为这些能力涉及硬件/系统级调用、资金/身份敏感操作、隐私合规边界,所以它们不走 DOM,而是通过 wx.*统一收口——要经过微信客户端(Native)这层网关

合规提醒(人话版): 用到权限的 API(位置/相机/麦克风等)时,必须按微信当时的权限与隐私协议流程走:先告知、再授权、最小必要、别偷偷传。逻辑层没有 DOM 可藏污,但日志/上报链路要是设计糙了,一样会踩《个人信息保护法》相关红线。


三、为什么"没有 window/document"反而是保护你

官方这句话很冷,但很负责任:

注意:小程序框架的逻辑层并非运行在浏览器中,因此 JavaScript 在 web 中一些能力都无法使用,如 windowdocument等。

把它落到日常开发习惯上,就是下面这张对照表(我把它当"红线清单"贴在团队 wiki 首页):

(1)你从 Web 带来的习惯 → 小程序现实 → 正确姿势

  • document.getElementById / querySelector→ ❌ 不存在 → 用 {{ }}setData驱动视图

  • window / location / history→ ❌ 没有这些 BOM 对象 → 用 wx.navigateTo / switchTab / redirectTo等路由 API

  • jQuery / Zepto(依赖 DOM/BOM)→ ❌ 基本跑不了 → 用框架数据绑定 + 组件化

  • NPM 包里"只要用到 DOM/BOM"的部分 → ❌ 别硬上 → 选小程序适配版本,或换纯逻辑库(lodash-es核心、dayjs等通常 OK)

一句话定性: "没有 window/document"不是限制你的创造力,是把 UI 所有权从 JS 手里收走,让你没法写出"状态散落在十个 DOM 节点上"的面条代码。


四、进阶心法:让 App Service 又快又稳的三条纪律

(1)onLaunch 别塞"重活"

onLaunch是小程序最敏感的启动期。在这里做同步重计算、大循环、阻塞式操作,会直接拖慢首屏。进阶建议:onLaunch里只做轻量初始化;需要异步拉的配置/登录态探测,用 Promise或事件解耦,别让启动链等它。

(2)globalData 不是全局变量垃圾桶

能放 globalData的只有两类东西:

  • 全局配置(主题/环境标识)

  • 登录态凭证(token / userInfo 脱敏后的)

    其他的,该是页面 state 就放页面,该是组件 state 就放组件。

(3)模块化走 CommonJS,别走全局副作用

官方明确说了每个文件有独立作用域,变量/函数只在该文件有效;不同文件声明同名变量不会互相污染。

js

// utils/format.jsfunction formatPrice(cents) {  return (cents / 100).toFixed(2)}module.exports = { formatPrice }// pages/index/index.jsconst { formatPrice } = require('../../utils/format')

这才是干净的模块化。别在文件顶层写一堆直接执行的副作用脚本,把 app.js搞成"万物起源"。


五、合规与标准的底线

从 GB/T 25000.51-2016 的角度,软件产品的"功能性""可靠性"要求你的运行时行为可预期、可审计。逻辑层没有 DOM 这个"不可控变量",其实帮你更容易做到这点——前提是你的状态管理别又全塞回 globalData当野草原。

而从 《中华人民共和国个人信息保护法》 的角度,逻辑层所有涉及用户数据的处理(哪怕是间接的,比如日志上报里带了 openid/手机号哈希),都必须满足合法、正当、必要、透明。App Service 的隔离结构是好起点,但别让它变成"因为看不到 UI 就忽略隐私设计"的盲区。


六、结束语

小程序的逻辑层 App Service,本质就是一个不带浏览器的、被微信管控的 JS 运行时:它用 App()/Page()组织生命周期与状态,用 setData向下发数据,用事件向上收反馈,用 wx.*调微信原生能力,并且坚决不给你 DOM 这支"会走火的枪"

你越早把它当"服务进程"而不是"页面脚本",你的架构越干净,性能越可控,审核与合规也越稳。


参考文献

[1] 微信团队. 逻辑层 App Service [EB/OL]. (2024-05-01)[2024-06-16]. https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/index.html.

[2] 微信团队. App(object) 参考文档 [EB/OL]. https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html.

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

[4] 全国人民代表大会常务委员会. 中华人民共和国个人信息保护法 [Z]. 2021-08-20.


💬 互动话题

你最早转小程序时,最想当然的"Web 写法"是哪一个?documentwindow.location?还是某个 NPM 包直接报 DOM 缺失?

评论区留一句你当年最疼的"跨环境踩坑",我挑几条最典型的,下篇用真实重构对比帮你改成"App Service 正确姿势"。想拿《小程序逻辑层合规与性能 Checklist(防踩雷版)》的,喊一声,我整理完发~

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-25 11:20:33 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/796445.html
  2. 运行时间 : 0.173368s [ 吞吐率:5.77req/s ] 内存消耗:4,762.16kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=63ba691ec6c6cea6aad22cbf9e92bd95
  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.000705s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001535s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000660s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000571s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001328s ]
  6. SELECT * FROM `set` [ RunTime:0.000446s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001468s ]
  8. SELECT * FROM `article` WHERE `id` = 796445 LIMIT 1 [ RunTime:0.002414s ]
  9. UPDATE `article` SET `lasttime` = 1782357633 WHERE `id` = 796445 [ RunTime:0.004509s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000541s ]
  11. SELECT * FROM `article` WHERE `id` < 796445 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000857s ]
  12. SELECT * FROM `article` WHERE `id` > 796445 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000710s ]
  13. SELECT * FROM `article` WHERE `id` < 796445 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.003691s ]
  14. SELECT * FROM `article` WHERE `id` < 796445 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.006943s ]
  15. SELECT * FROM `article` WHERE `id` < 796445 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.009118s ]
0.175109s