在单个存档中保存完整网页(图像等)的最佳"文件格式"是什么?

Mar*_*rco 34 html standards webpage archive

我正在研究一个项目,它将单个图像和文本文件存储在一个地方,就像一个时间胶囊.现在,大多数项目都可以保存为一个文件,如DOC,PPT和ODF.但完整的网页不能 - 它们被保存为单独的HTML文件和数据文件夹.我想在一个档案中保存一个网页,虽然有几个解决方案,但没有"标准".哪个是HTML档案的最佳格式?

  • Microsoft有MHTML - 基本上是一个编码为MIME HTML电子邮件的文件.它已经基于现有标准,并且MHTML作为自己的标准被提议为rfc2557.这是一个好主意,并且它永远存在,除了它自1999年以来一直是"提议的标准".此外,IE以外的实现只是麻烦.IE和Opera支持它; Firefox和Safari具有繁琐的扩展功能.

  • Mozilla具有Mozilla存档格式 - 基本上是带有标记和图像的ZIP文件,元数据保存为RDF.这是一个很棒的主意--Winamp为皮肤做了这个,ODF和OOXML用于嵌入图像.我喜欢这个,除了,1.除了Mozilla之外没有人使用它,2.支持它的唯一扩展程序自Firefox 1.5以来没有更新.

  • 数据URI正变得越来越流行.您可以将文件直接编码为HTML64标记,而不是引用MHTML或MAF的外部位置.根据您的视图,它是精简的,因为文件正好在标记所在的位置.但是,支持仍然有些弱.Firefox,Opera和Safari支持它没有失态; 市场领导者 IE只是开始在IE8上支持它,即使那时也有限制.

  • 当然,还有"保存完整的网页",其中HTML标记保存为"savedpage.html",文件保存在单独的"savedpage_files"文件夹中.Afaik,每个人都这样做.它得到了很好的支持.但必须处理两个独立的元素不是简单和简化的一切.我的项目需要将它们放在一个存档中.

请记住浏览器的支持易于编辑的页面,你认为什么是保存网页在一个单一的存档的最佳方式?什么是最好的"标准"?或者我应该只是扣下来处理HTML文件和单独的文件夹?为了我的项目,我可以支持,但我最好避免它.

Tre*_*reb 16

我最喜欢的是ZIP格式.因为:

  • 它的目的非常好
  • 这是有据可查的
  • 有很多实现可用于创建或读取它们
  • 用户可以轻松提取单个文件,更改它们并将它们放回存档中
  • 几乎每个主要的操作系统(Windows,Mac和大多数Linux)都内置了一个ZIP程序

替代品都有一些缺陷:

  • 使用MHTMl,您无法轻松编辑.
  • 对于数据URI,我不知道实现有多困难.(使用ZIP,即使我可以在3年前用PHP完成...)
  • 将事物存储为单独文件的选项只包含太多可能出错的事情并使您的存档陷入困境.


Joe*_*air 5

几乎所有平台上的几乎所有浏览器都支持 PDF,并将内容和图像存储在单个文件中。可以使用正确的工具对其进行编辑。这几乎肯定不理想,但这是一个值得考虑的选择。

  • 呃!为什么我没有想到这一点?是的,每个人和他们的母亲都使用 PDF 来共享文档。没有工具编辑并不容易,但更重要的是浏览器支持。“特别是如果我将 PDF 与另一种解决方案结合起来,结果会非常理想。谢谢! (2认同)

Esp*_*osa 5

这不仅仅是文件格式的问题。另一个关键问题是您到底想存储什么?是吗:

  1. 存储整个页面以及所有引用的资源 - 图像、CSS 和 javascript?

  2. 捕获在某个时间点呈现的页面;网页 DOM 的某些渲染状态的静态图像?

浏览器中最新的“页面另存为”功能,无论是 MAF、MHTML 还是文件+目录,都尝试第一种方式。这最终是有缺陷的方法。

不要忘记网页现在更像是本地应用程序,而不是您可以轻松存储的静态文档。潜在问题:

  1. 一个页面实际上是由 JS 动态构建的多个页面,需要用户交互才能使其达到所需状态

  2. AJAX 应用程序可以与远程服务进行远程通信,使其无法用于离线查看。

  3. JavaScript 代码中的隐藏链接。这样的资源就不是存储页面的一部分。即使解析 JS 代码也可能无法发现它们。您需要运行代码。

  4. 即使基本 html 元素的位置可能会被重新计算,也可能由 JS 动态计算,并且并不总是可能/容易在本地重新创建它。

  5. 您需要某种 JS 内存转储并加载它以使页面达到您希望存储的所需状态

还有很多很多的问题...

检查 Chrome SingleFile扩展。它将网页存储到一个 html 文件中,并使用已经提到的数据 URI 内嵌图像。我没有对它进行太多测试,所以我不能说它处理“易失性”ajax 页面的效果如何。