跳到内容
当前位置:首页>课件>01|从开放课件到MAIC

01|从开放课件到MAIC

  • 2026-11-07 21:06:10
01|从开放课件到MAIC
这是8月的旧文章,当时一共有8篇。
仅代表当时和ai讨论的一些想法。

图:在线学习逐步把课堂功能拆开,再重新组合。

2000年初,网络上已经能够找到一些国外名校课程。我一直把它们统称为“慕课”:课程介绍、教师讲义、阅读材料、作业设计,有时还附着教材和考试题,视频极少。因为不少内容来自国外,中文学习者接触到的,往往还是经过翻译和整理的版本。

直到最近重新追溯这段历史,我才发现,这个记忆中的名称其实并不准确。我当时接触的主要不是后来意义上的MOOC,而是开放课件。这个看起来很小的概念纠正,却意外地打开了我重新理解在线学习的一条线。

二十多年前,网络上首先被公开的是一门课程所使用的材料。后来,越来越多东西被搬了上去:教师的讲授、学生的练习、作业评价、课程节奏、同伴交流,再到今天,连教师、助教和同学这些课堂角色,都开始可以由人工智能生成。把这二十多年的变化放在一起看,在线学习的发展就不只是“技术越来越先进”,它更像是在不断回答同一个问题:离开一间真实教室以后,一门课究竟还需要什么,才能继续运行?

最初开放的是课程资源

2001年,麻省理工学院宣布建设开放课件项目,将大量课程材料向公众开放。课程大纲、讲义、阅读书目、作业和考试等内容,开始脱离原来的校园和注册身份,供世界各地的学习者浏览和使用。后来,华语地区又出现了志愿翻译项目,将这些开放课件译成中文,进一步降低了语言门槛。[1]

这一步首先解决的是一个非常朴素的问题:能不能得到?

过去,一名普通学习者如果没有进入相应大学,很难知道一门名校课程究竟学什么、读什么、做什么。开放课件把原本留在大学内部的课程资源释放出来。这件事在今天看来似乎已经习以为常,但在当时,它改变了课程与学校之间的关系。课程材料第一次可以大规模离开校园。

可是,很快另一个问题就出现了。能够拿到一份课程大纲、几十份讲义和一套作业,等不等于真正进入了这门课程?并不等于。MIT开放课件没有统一的开始和结束日期,不要求注册,也不提供学分和证书。学习者得到了课程资源,却没有进入一段正在运行的学习过程。

课程被开放了,学习却未必因此发生。

看见课堂,仍然没有进入课堂

后来,越来越多名校课程开始以视频形式公开。耶鲁开放课程将课堂录像、音频、文字稿和配套材料放到网上,哈佛《公正课》等课程也通过中文互联网广泛传播。[2]

讲义只能告诉你教师讲了什么,课堂录像却让人看见:教师怎样引入一个问题,怎样使用例子,怎样追问学生,又怎样把零散的回答慢慢推成一条思想线索。观看《公正课》时,我们接触到的不只是伦理学知识。我们第一次可以在屏幕之外,看见一位名师怎样上课。

但这仍然有一道很清楚的边界。屏幕外的观看者不是这堂课真正的学生。他不能举手追问,不能提交作业,他的回答也不会影响教师接下来怎么讲。我们看见了课堂,却仍然站在课堂之外。

于是在线学习面前又多了一个问题:

如果不仅要让别人“看到一门课”,而是要让成千上万人真正进入并完成一门课,这门课该怎样在网上运行?

课程开始真正“跑起来”

2008年前后,MOOC这个名称开始出现。不过,它从一开始就不是一条整齐的发展路线。早期的连接主义MOOC,本身就非常强调学习者之间的连接。学习者通过博客、论坛、网络会议和资源聚合工具寻找材料、公开表达、回应别人,再逐渐建立自己的知识网络。[3]

在这种课程中,交流不是教师讲完以后顺便增加的“讨论区”。

连接本身就是学习的一部分。

而真正让MOOC在2011年至2012年前后成为全球教育热词的,是另一条更适合大规模运行的道路。斯坦福大学将人工智能、机器学习等课程向全球开放,随后Coursera、edX、Udacity等平台相继出现。[4][5]这一次,变化已经不只是“视频放到了网上”。

学习者开始进入一套完整得多的流程:注册课程,按照进度观看内容,完成嵌入式测验和作业,得到自动反馈,参加论坛讨论,通过最终考核,获得课程证明。(到现在,他们还是坚持每天给我发邮件)

一门在线课程终于开始真正“跑起来”。过去需要教师和学校共同维持的很多事情——什么时候学习、学完做什么、答案是否正确、完成到什么程度——开始被平台接过去。

从这里开始,在线学习真正进入了课堂功能内部。

它不再只是负责提供内容,而开始负责组织学习过程。

当“有人一起学”也需要被重新组织

回看这段历史时,我特别注意到论坛和线上社群。我原来的理解是:平台先把课程做成视频,后来发现学生一个人学习太孤独,于是又增加论坛、讨论和同伴互评,把课堂里消失的交流补回来。

后来才发现,这个判断只说对了一部分。最早的连接主义MOOC,本来就把人与人的连接放在中心;而平台型MOOC更多围绕预先设计好的视频、测验和任务运行,论坛、同伴互评和学习小组则承担了另一种作用:

它们开始重新承接课堂中的提问、解释、反馈和共同学习。

自动测验可以判断一道题答得对不对,却很难持续评价一篇文章、一个方案或者一项作品,也很难告诉学习者:你为什么会这样想?这里究竟错在什么地方?有没有另一种理解?于是,同伴互评、论坛、助教和学习小组被重新组织进课程。

在线学习每向前发展一步,都会重新发现课堂中原来还有一些东西没有被带走。

把讲义放上去以后,发现还缺教师的讲授;把视频放上去以后,发现还缺练习和反馈;课程能够大规模运行以后,又发现还缺人与人的交流。当然,设置一个论坛,并不会自动产生真正的学习共同体。如果想让交流持续发生,就又需要固定的小组、共同的时间、助教、导师,甚至稳定的学习关系。

一旦想把“人与人共同学习”真正补回来,就不能只增加一个按钮。

在线学习还要解决:学完以后算什么

当课程已经可以观看、练习、讨论和完成以后,另一个问题随之出现:

这样的学习,怎样得到大学和社会的正式承认?

我以前曾经把这段发展想象成一种“刷闯关”:完成一门课,拿一张证书;再完成几门,再积累几张证书;达到一定数量以后,就可以换成大学认可甚至学位。后来出现的可堆叠课程和微证书,通常都需要进入大学预先设定的制度通道。学习者完成指定课程以后,还需要正式申请,被大学录取,并满足相应要求,部分学习成果才可能转化为学分。

另一条道路,则是大学直接建立正式在线学位。例如佐治亚理工学院2014年启动的在线计算机科学硕士项目,本身就有完整课程体系、评价规则和学位授予责任。[6]这让我看到,在线学习发展到这里以后,已经不只是课程形式发生变化。

原来紧紧捆在一起的:

课程、学习、评价、学分和学位,开始被重新拆开,再按照新的方式连接。

开放没有让教育制度消失。它改变的是不同教育功能之间原来固定的组合方式。

当在线课程真正进入中小学

2013年至2014年前后,学堂在线、中国大学MOOC、台湾地区的ewant等中文平台陆续形成,在线课程也从早期的翻译和引进,进入本地高校自主建设和平台化运行阶段。[7]

但对我而言,这段历史中真正让我开始重新思考在线教育的,并不是中文MOOC平台,而是它后来进入了中小学。

2020年,国家中小学网络云平台上线。在学生无法正常到校的特殊时期,大量课程视频、教材和专题资源通过网络输送到全国各地。[8]

这一步非常重要。因为在线课程面对的学习者发生了变化。此前大量在线教育讨论的是大学生和成人,现在,它真正进入了儿童日常学习。突然之间,所有的教学方式开始以一种兵荒马乱的方式推进。

而很快,人们又遇到了一个熟悉的问题:

把一节好课送到屏幕上,等不等于把这节课送进了一个具体班级?

答案仍然是否定的。在“三个课堂”和双师课堂的实践中,远程名师或者平台课程可以提供优质内容,但本地教师仍然要调整播放节奏、组织学生回答和讨论,观察他们到底有没有理解,再根据现场情况补充解释。[9]那段时间的网课说多了都是泪!

技术的发展并不是一条不断把真人教师移走的路线。恰恰相反:

课程内容越容易被远程输送,我们反而越能看清现场教师究竟在做什么。

讲解可以被复制。可是,一个具体班级此时是什么状态,哪个孩子没有听懂,什么时候应该停下来,哪个问题值得继续追问,这些仍然需要现场判断。

双师课堂实际上承认了一件事情:

把课程送过去,不等于把课堂送过去。

图:远程课程提供内容,现场教师根据学生反应组织课堂。

当教师、助教和同伴也可以被生成

如果说双师课堂重新把现场教师放回在线课程,那么近年的另一条技术路线,则开始继续向前走。

它开始尝试:能不能连教师、助教和同伴这些角色,也交给人工智能?

2024年,清华大学开始试点MAIC——Massive AI-empowered Courses。

按照清华公开资料,MAIC通过大模型和多智能体系统,可以进行自动授课、答疑和学情反馈。系统还可以生成AI教师、AI助教和具有不同风格的AI同伴,与真实学习者共同完成课程活动。[10]

图:不同AI角色共同参与课程活动。

我第一次看到这种设计时,曾经把它形容成:

“一间只有自己是活人,剩下全是虚拟角色的课堂。”

这当然不是MAIC的官方定义,也不能用来概括它所有的实际应用。但公开展示中确实已经出现过这样的场景:真实学习者进入一间由AI教师和AI同伴参与的课堂,听讲、提问、讨论和获得反馈。

过去的在线平台主要负责呈现内容、发布任务、记录进度和判断答案。

到了这里,人工智能开始进一步进入:

课程设计、内容生成、讲授、连续追问、个别解释、讨论、学习节奏和学情分析。

这已经不是给原来的在线课程再加一个聊天机器人。它意味着,原本由真实教师、助教和同伴完成的一部分活动,也开始被识别、拆分,再交给不同的人工智能角色。

不过,这里仍然需要保留边界。

MAIC应用范围的扩大,并不意味着所有课程都适合交给这种方式。清华项目团队也明确指出,现阶段它更适合部分入门性、较少依赖实际动手技能的课程;项目本身也并不是简单以AI取代真人教师,而是希望让人工智能承担部分重复工作,使教师更多进入创造性和人际性的教学环节。[10][11]

这反而让我觉得,MAIC真正值得讨论的地方,不在于“AI老师到底像不像真人”。

而在于它让一件原来并不明显的事情突然显现出来:

一堂课,其实可以被拆成很多不同的功能。

变化的不只是媒介

如果只从技术表面看,从开放课件到MAIC,很容易被写成一条升级路线:

文字和讲义——视频——平台——人工智能。

真正发生的并不是媒介升级。最初,课程资源变得可以远程获得;随后,教师的讲授可以被反复观看;平台型MOOC开始安排学习进度、练习和部分评价;论坛和社群重新承担提问、反馈和同伴支持;在线认证和学位重新组合课程、评价与正式资格;双师课堂把远程课程与现场教师重新连接到了MAIC,连教师、助教和同伴所承担的一部分教学活动,也开始可以被人工智能重新配置。

原来集中在教师和课堂中的:

内容呈现、练习、反馈、评价、答疑、互动和学习管理,正在被逐渐识别出来,交给不同的人、机构和技术系统,再按照新的方式重新组合。

图:在线学习逐步接入新的课堂功能。

所以,在线学习的发展并不只是把一门课搬到屏幕上。

它更像是一段:教育功能不断被拆分、数字化,再重新配置的历史。

而且,这并不是一条越来越接近“完美虚拟课堂”的单线道路。有时技术承担更多,有时真人重新进入;有的课程强调内容,有的强调连接;有些功能适合大规模复制,有些功能一旦真正需要质量,就又需要稳定的人和关系。二十多年前,我面对的是一套没有固定教师、同伴和课程节奏的开放材料。今天,一个在线系统已经可以生成课程、安排练习、回答问题,甚至配置教师、助教和同学。

这条路走到这里,反而使一个原本不容易看见的问题变得越来越清楚:

如果课堂里的讲解、练习、反馈、答疑,甚至教师和同伴都可以被拆成一种“功能”,那么课堂中的人,究竟只是这些功能的承担者吗?

这也是下一篇,我真正想继续追问的问题。

参考资料

[1] MIT OpenCourseWare, “About Us”;Lee, Lin & Bonk, “OOPS, Turning MIT OpenCourseWare into Chinese”。

[2] Open Yale Courses, “About”。

[3] Bell, “A Framework for Interaction and Cognitive Engagement in Connectivist Learning Contexts”;CCK08相关研究。

[4] Stanford School of Engineering, “Stanford Engineering’s New Online Courses: Hugely Popular and Bursting with Activity”。

[5] Coursera, “About Coursera”;edX, “About Us”。

[6] edX, “MicroMasters Programs”;Georgia Tech, “About OMSCS”。

[7] 清华大学“学堂在线选课人次破百万”;中国大学MOOC平台资料;ewant平台介绍。

[8] 教育部:“国家中小学网络云平台持续发力”;“国家中小学智慧教育平台上线试运行”。

[9] 教育部:《关于加强“三个课堂”应用的指导意见》;国家中小学智慧教育平台建设与应用说明。

[10] 清华大学学生学习与发展指导中心:“MAIC”;清华大学:“AI-Powered Learning: MAIC Offers a New Approach to Online Education”。

[11] 清华大学:“加速培养AI原生时代的未来创新人才”;“清华这些AI课免费开放”。

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