Caching 这种批量加载在线内容的想法可行吗?

Caching 这种批量加载在线内容的想法可行吗?,caching,browser,threadpool,Caching,Browser,Threadpool,我很久以前就提出了一个想法,但从未付诸实施,我想知道它是否实用,因为它可以显著减少现代浏览器的加载时间。它依赖于这样一个事实,即相关任务通常在批量完成时完成得更快,并且浏览器可以使用统计模型下载不同页面上的内容,而不是在用户浏览时处于空闲状态。我在下面粘贴了一段我最初写的内容的摘录,其中描述了这个想法 说明。 当人们访问网站时,我 推测那是一种可能性 密度函数P(q,t),其中q是a 实值整数,表示 一个网站的ID,t是另一个 实值非负整数 表示一天中的时间,可以 预测网页的顺序 被典型的人类

我很久以前就提出了一个想法,但从未付诸实施,我想知道它是否实用,因为它可以显著减少现代浏览器的加载时间。它依赖于这样一个事实,即相关任务通常在批量完成时完成得更快,并且浏览器可以使用统计模型下载不同页面上的内容,而不是在用户浏览时处于空闲状态。我在下面粘贴了一段我最初写的内容的摘录,其中描述了这个想法


说明。 当人们访问网站时,我 推测那是一种可能性 密度函数P(q,t),其中q是a 实值整数,表示 一个网站的ID,t是另一个 实值非负整数 表示一天中的时间,可以 预测网页的顺序 被典型的人类拜访 准确到足以保证 请求和加载HTML 用户将要阅读的文档 进展对于给定的网站,请使用 显示为“主”的文档 页面“的网站,通过它 用户可以访问其他部分 由树的根表示 结构。发生以下情况的概率: 用户将访问 树可以用两种方式表示。 如果用户希望允许一个进程 自动执行 操作系统的初始化 从网站预取网页 (使用稍后详述的流程) 用户经常访问的 打开web浏览器时 决定 一个给定的网站是否会有 可以确定预取的网页 使用自适应启发式模型 基于用户的历史记录(或 手动输入)。否则,如果没有 过程是用户所期望的 根节点的P值为 不相关,因为预取 进程仅在用户访问之后使用 访问网站的主页

前面描述的树中的孩子 每个都与一个个体相关联 概率函数P(q,t)(本 函数可以是一个查找表 存储时间(网页对)。因此 用户访问的网页序列 随着时间的推移,将使用此树记录 结构。比如说,早上7点, 我可能有71/80的机会 访问Reddit上的“WTF”部分 加载该页面的主页之后 地点。基于 p> 每个节点的概率函数p 在树中,网页链 从地面延伸一定的深度 根节点的净概率 每个序列都被遵循,P_c, 已经超过了某个阈值,P_min, 在用户访问时请求 网站的主页。如果 下载一个网页完成 在处理另一个之前 线程池的使用使得另一个 core被分配了解析任务 队列中的下一个网页 要分析的网页。希望在 通过这种方式,大部分 用户单击的网页可能是 比他们表现得快得多 否则的话


我遗漏了很多细节和优化,因为我只是想简单描述一下我的想法。非常感谢你花时间阅读这篇文章;如果您还有其他问题,请随时提问。

这是一个有趣的想法——虽然没有您建议的大脑,但已经有一些在浏览器中预取的实现——这可能会有很大帮助。我认为这个计划有一些缺陷:

a) 在大多数情况下,网页浏览速度足以满足大多数目的。
b) 带宽正在被计量——如果我只是浏览一下主页,作为一个用户,我是否愿意为其他页面付费。此外,在这类事情可能有用的情况下(例如,3g连接速度慢),带宽的计量往往更严格。而且可能不太擅长并发(例如CDMA3G连接)。
c) 从服务器操作员的角度来看,在大多数情况下,我宁愿只提供请求的页面。呈现从未被看到的页面会耗费我的周期和带宽。如果你像很多人一样,在某个云计算平台上,你是按周期和字节付费的。
d) 需要重新构建大量的分析系统,其中许多仍然基于请求==印象的理论运行


或者,简短的总结是,为了加快服务和呈现页面的速度,确实不需要预先预测人们会看到什么。现在,像这样的东西真正有用的地方应该是“嘿,如果你喜欢X,你可能喜欢Y”,然后弹出链接之类的东西,向人们介绍内容(或产品)

Windows在磁盘访问方面也做了同样的事情——它“知道”您可能会在某个特定时间启动Firefox并预加载它

SuperFetch还可以跟踪这些应用程序每天的使用时间,这使得它能够智能地预加载预期在不久的将来使用的信息


指出做类似事情的现有技术:

  • RSS阅读器在后台加载提要,并假设用户迟早会想阅读它们。不过,并没有概率函数来选择要下载的提要,用户会显式地选择它们
  • 浏览器起始页和固定标签:这些标签会随着浏览器的启动而加载,用户也可以随时选择值得拥有的网站
您的建议归结为预测用户在给定当前网站和当前时间的情况下最有可能单击下一步的位置。我想不出其他几个因素在这里起作用:

  • 其他哪些网站在标签页中打开(“用户在youtube上打开歌曲,预加载歌词和吉他和弦!”)
  • 其他哪些应用程序正在运行(“用户正在e中查看发票