脚本漫画源是什么:几十 KB 的 JS 文件如何接通内容
网络漫画源全部用 JavaScript 脚本实现,这是这款软件与多数漫画应用最大的架构差异。理解原理,后面添加、排查、自写源都不迷糊。
运行原理一图流
- 应用内嵌了 QuickJS 脚本引擎,启动时自动扫描已安装的源脚本
- 每个源是一个 .js 文件,里面声明了怎么列目录、怎么搜索、怎么取图
- 你在界面上的每次浏览,都是应用把请求转交给对应脚本执行,再把结果渲染成页面
几个关键机制
- 隔离运行:每个源跑在独立的脚本上下文里,一个源出错不拖垮其他源
- 版本门槛:脚本自带最低兼容版本号字段,应用版本太老时拒绝加载,避免半兼容的诡异问题
- 能力由源决定:有没有分类页、有没有排行、能不能评论评分、支持几个收藏夹——都是源作者在脚本里声明的能力,不是应用统一给的功能
- 体量很小:一个源通常几十到几百 KB,不装任何二进制组件
这个设计的意义
- 应用本体保持中立:加新站点不用等应用更新,装个脚本就行
- 懂脚本的人可以按公开的源开发文档自己写源,社区也有维护中的源列表仓库持续收罗现成脚本
源脚本的来源管理是使用安全的核心:只装来源可信的脚本,来源不明的一律不碰。下一步见添加第一个漫画源。