分类
研究

博客访问体验量化评估方法的失败探索尝试

本文是对博客访问体验进行量化评估的一次技术探索,然而并未提出成熟的量化评估体系。

1. 前言

在浏览博客的过程当中,有一些博客以其花里胡哨的设计掩盖其贫瘠的内容。今天在友情链接串门的时候发现博友发了一篇《老派博主的博客体验笔记》,将访问体验这个东西又搬到台面上讨论。文章评论区多是吐槽文中提及的这种花里胡哨的设计。若是吐槽,我没办法发出什么有新意的评论。如何建立一套量化评估博客访问体验的方法,给出一个能够代表博客访问体验的数值,这让我感兴趣。

本文预期达成以下目标:

  • 给出一个量化博客访问体验的公式
  • 给出公式中一些权重值的支撑实例
  • 建立一个测试博客访问体验的网站,给出得分和改进建议

你可以直接跳到本文的后言

2. 影响因素

网页设计的过程中应当有效管理视觉配色、规范设计排版样式和精简 Tab 标签信息等事项1。结合各位大佬发的文章(《谈谈不受欢迎的博客技术特征》《关于无后端 web 服务的优化方案和思路》《中文博客倡议》等),容我粗略总结博客访问体验的影响因素,也就是评估应该纳入考量的东西。

  • 访问所需时间(域名解析耗时、TTFB、FCP、LCP等)
  • 不必要的特效(鼠标移动、评论区打字时的特效)
  • 与博客功能没有关联的设计(华丽的背景大图、看板娘、弹窗、切换标签页改标题、悬浮音乐播放组件、广告过滤程序检测器)
  • 影响阅读的设计(难以阅读的艺术字体、颜色对比度、文字大小、无订阅源)
  • 烦人的限制(禁止复制、右键、F12)
  • 没什么内容的文章还弄 AI 摘要
  • 移动端的适配

访问所需时间以及与浏览器有关的指标基本都可以用代码来测。下面由我对影响因素进行逐一分析。

2.1 访问所需时间

为了探究访问所需时间的几个指标的影响,我对 100 个博客进行了测试,由于网络条件,我只测试成功了 36 个,拉了一张表出来。

序号博客名称URL总耗时(s)TTFB(s)LCP(ms)DOM加载(ms)
1TomyJan 的博客https://blog.tomys.top29.0440.040199512232
2不淡定的实验室https://xd.sh.cn27.4410.366186732303
15御坂の地下室https://misakamoe.com9.4942.11043204876
18花开陌上https://moshanghua.net9.1601.59040504108
35夏日鱼塘https://www.summerpond.cn6.1760.08916761550
36MBRjun-Bloghttps://www.libmbr.com5.8790.04412571313
表一 36 个博客的访问耗时、TTFB、LCP 和 DOM 加载耗时

上表中的第 1 个博客虽然测出来的总耗时较长,但是实际访问似乎在 1500ms 前就将主体内容(网站名称、简介、背景图片)加载出来了,后面不知道在加载什么东西。自动播放音乐 + 弹窗广告 + 切换标签页改标题 + 看板娘,后面可以用这个网站做测试(也是 buff 叠满了)。第 2 个网站也是,前 1500ms 就把文章列表这些内容加载好了,后面请求 gravatar 头像的时候拖了 14 秒……感觉是这些没用的资源把 LCP 抬高到原本不属于它的高度。虽然无语,但是这两个例子说明页面加载的总耗时没办法代表我们访问博客时的实际体验。TTFB 能稍微体现访问网站刚开始空白加载的时间,但代表性不大。DOM 加载时间的差别我访问时是感受不到的。

啊,感觉找的这几个指标都挺废的(虽然指标优秀的博客访问体验的确挺好)。于是,我问 Deepseek:

你知道有什么指标可以用来描述页面加载的流畅程度吗?有些网页 1500ms 前就把主体内容加载出来了,但是后面在加载一些无关紧要的东西,拉长了加载时间,LCP 也不低。

它向我推荐 Speed Index 和 TTI 这两个指标,「页面内容视觉填充的速度」和「页面完全可交互的时间」,感觉是我想要的指标。拿这两个指标再测一下,拉一个表。

排名博客名称URLSpeed Index(ms)TTI(ms)
1Foxholehttps://blog.southfox.me1590310541
2异国迷宫的十字路口https://blog.fivezha.cn149553264
3ADD-SP‘s Bloghttps://www.addesp.com1440211609
56杜老师说https://dusays.com21371519
57夏日鱼塘https://www.summerpond.cn17311591
58MBRjun-Bloghttps://www.libmbr.com14291317
59Declan’s Bloghttps://blog.haojin.li10921092
表二 部分博客的 Speed Index 和 TTI

不得不说,这两个指标还真「有点东西」。Speed Index 高的博客相比于 Speed Index 低的博客页面加载感觉会慢一点。TTI 在一些 Speed Index 比较高的博客反而比较低,例如表一的第 1 个博客,Speed Index 为 13580ms,而 TTI 却为 2144ms,有一些资源加载很慢,但页面主体加载比较快,访客访问很快就可以与页面交互了。因此,TTI 比 Speed Index 更能够描述页面主体的加载速度。

故,我们可以粗略定义一个基于访问速度的因子:

Factor=100×2.52.5+ln(1+TTI1200+Speed Index1800+TTFB×1000350)\text{Factor} = 100 \times \frac{2.5}{2.5 + \ln\left(1 + \frac{\text{TTI}}{1200} + \frac{\text{Speed Index}}{1800} + \frac{\text{TTFB} \times 1000}{350}\right)}

我们可将 Factor 视作 TTI(ms)、Speed Index(ms) 和 TTFB(ms) 的函数,函数具有以下性质:

  • 单调递减:随着性能指标变差(TTI↑、SI↑、TTFB↑),因子↓
  • 值域:(0, 100],理论上不可能达到100,易于理解
  • 对数让 Factor 更贴近人眼的感受

我又双叒给这个 Factor 拉了一张表。

排名博客名称URLFactor
1MBRjun-Bloghttps://www.libmbr.com69.84
2ncc 的个人网站https://www.zqcnc.cn69.49
3杜老师说https://dusays.com67.77
4夏日鱼塘https://www.summerpond.cn67.76
5SkYe’s Bloghttps://www.mrskye.cn64.98
23F 君的博客https://blog.fkun.tech50.95
24静静的小窝https://wznmickey.com49.95
25HandSonic‘s Bloghttps://handsonic.top47.67
26提莫酱的博客https://www.timochan.cn46.75
27人家故里https://fx7.top46.45
表三 Factor解析式方案一实测数据

原本还有另外一个解析式来增大不同博客 Factor 的区分度,但是测了一遍「属实」是太有区分度了,没用这个。既然做了,公式和数据贴在这里。

Factor=max(0,100(TTI50+Speed Index100+TTFB×200)0.7)\text{Factor} = \max\left(0, 100 – \left(\frac{\text{TTI}}{50} + \frac{\text{Speed Index}}{100} + \text{TTFB} \times 200\right)^{0.7}\right)
排名博客名称URLFactor
1f2h2h1’s bloghttps://f2h2h1.github.io89.97
2飞刀博客https://www.feidaoboke.com86.93
3爱吃肉的猫https://meuicat.com85.81
4晓雨杂记https://www.lihaoyu.cn85.78
5MBRjun-Bloghttps://www.libmbr.com85.72
100BOB’S BLOGhttps://www.itbob.cn76.54
101Revincx 的小破站https://blog.revincx.icu76.31
102a.d博客https://blog.aiheadn.cn/76.16
103刘郎阁https://vjo.cc76.12
104树洞笔记https://www.x8xx.cn76.05
105无用笔记https://www.xhily.com/76.00
251希望的博客https://www.xiwangly.com56.69
252空鸣深语https://blog.deepchirp.com56.56
253陌子夕生活记https://mozixi.com56.28
254异国迷宫的十字路口https://blog.fivezha.cn55.99
255夜庭記https://musenxi.com55.95
304F 君的博客https://blog.fkun.tech30.51
305阿云的宝库https://www.yunxge.cn28.91
306imba久期的博客https://imba97.com28.76
307Sakitami 的集装箱https://blog.skihome.xyz19.38
308海蓝岛https://hailandao.com/9.80
表四 Factor解析式方案二实测数据

2.2 不必要的特效和设计

原本以为这一块的检测做起来会比较容易,没想到 Deepseek 给出的几版代码误报都很严重,比如误报禁止 F12,误报对比度不足,报告标题文字过大等等……(已晕厥)

一篇相关文章:  针对博客网站友链的随机网络研究

程序在检测看板娘、弹窗的时候采用的方式有限,只是通过检测 live2d、waifu、kanban、看板娘、pio 等关键词来实现。

图一 检测结果

FactordesignFactor_{\text{design}}初始化为 100 分,然后按照不同类型的问题扣减不同的分数。

图二 分数生成代码

由两个因子组成总分数。

Scoretotal=Factorperf×Factordesign100Score_{\text{total}} = \frac{Factor_{\text{perf}} \times Factor_{\text{design}}}{100}

3. 搭建测试网站

使用 Flask 弄了一个小网站,可以输入一个博客,会给出博客的分数。然后我拿我自己的博客进去测了一下:不合格。(事已至此,已成艺术)

图三 拿我自己的博客进去测试一下

4. 后言

对比前言提出的预期目标,本文既没能给出一个令人信服的公式,也没能搭建一个可以对访问体验进行测量的框架。本文所做实验是相当失败的。

本文没能正确评估这项工程的复杂性。打开一个网页给人的主观感受不是一两个指标所能反应的,总有博客与实验预期格格不入。探测悬浮组件、鼠标特效也缺乏有效的方案。指标只能反映出过程的某个侧面。我在对比数据的过程中,有时感觉不到数值差异巨大的博客给我感受上的差别。

若有人能够对博客的访问速度、内容质量、页面设计进行量化,并用作对博客进行筛选的指标,那量化的东西就不再是好的了。“当一项指标成为目标时,它就不再是一个好指标了。”古德哈特就像这些指标的诅咒。我失败了,就没脸说量化这个东西是个徒劳。愿意尝试这个东西的人也不会把这篇文章当回事。模拟不出来是我菜,不是不行。

本文的用处可能远没有谈论博客体验的博文用处大。

抱歉,各位读者。

附录与参考文献

Xiaozonglin/webpage-visit-feeling-score: 博客访问体验量化评估方法的失败探索尝试

  1. 孙聪妮.视觉元素在网页设计中的应用与研究[J].卫星电视与宽带多媒体,2019,(19):56-57 ↩︎

林林

一个来自福建泉州的学生,现就读于西安电子科技大学计算类(网络安全)专业。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理