【问题标题】:Force a browser to download an BIG HTML file to disk and open it强制浏览器将 BIG HTML 文件下载到磁盘并打开它
【发布时间】:2017-12-27 00:42:07
【问题描述】:

任务: 我有一个放置在服务器上的巨大 html 文件,我想通过单击 URL 将其显示给用户。

问题: 由于这个文件很大,在点击 URL 时浏览器不会及时呈现页面*(记录会连续添加,而垂直滚动条的大小会减小,用户只能看到前几条记录)*并且浏览器的默认微调器会不停地旋转。


可以这样实现吗,如果可以,如何实现?---> 点击“链接”后,html 文件应该首先下载到客户端机器上,然后在客户端浏览器窗口从他的本地系统而不是从URL 直接(可能在 iframe 或其他东西中)。

编辑 加载 500 MB 的 HTML 对浏览器的要求很高。

解决方法 由于生成的 htmls 文件很大,我们将 htmls 文件转换为 pdf 格式。后来,使用浏览器的默认 pdf 查看器功能在浏览器窗口本身查看数据或简单地将 pdf 文件下载到磁盘上。

【问题讨论】:

  • HTML 文件是否需要运行一些 JS 或链接任何 CSS 文件,还是只关心 HTML 标记?
  • 只计划旧的 html 没有别的。但大小很大.. 500MB 等
  • “我们将 htmls 文件转换为 pdf 格式(500 MB 缩小为 5 MB,缩小了 100 倍)”... 这怎么可能?我很确定您的 HTML 文档在某种程度上非常搞砸了。 oO
  • 它不完全是 500MB,而是按这个顺序排列的。html 是通过工具生成的。但我们发现 pdf 等价物的数量级为几 MB。此外,从我的 cmets 中删除了该行以避免任何混淆。

标签: javascript jquery html http web


【解决方案1】:

不,没有办法强制浏览器将 HTML 文件下载到磁盘并打开它。

实际上,一个 500+ MB 的 HTML 文件永远无法读取——加载它需要的内存比 Web 浏览器可用的内存要多得多。下载它不会有帮助。您需要将其分解为更小的文档。

【讨论】:

  • 我们可以使用任何延迟加载策略吗?或者我们可以限制可以呈现多少数据,就像一个适用于所有浏览器的卡盘一样?
  • 不太可能。无论如何它都不会很好地执行 - 加载 500 MB 的 HTML 对浏览器的要求很高,即使它没有被渲染。
  • 好的,最后请注意,最好的方法是生成 pdf 并显示?因为我注意到为此 html 生成的 pdf 文件只有几 MB。如果给你这个问题,你会如何解决这个问题,我应该如何分解小文档并让用户看到整个报告?
  • 除非您的 HTML 有一些非常奇怪的地方,否则 PDF 似乎不太可能更好。我希望 500 MB 的 HTML 可以生成一个长达数万页的 PDF,如果不是更长的话。
  • 这种文件格式的改变在大多数情况下被证明是很酷的选择[我也有,将页面数量限制在 3k 页左右,解决方案适用于大多数浏览器] 但是,经过大量测试后,我发现在 chrome 54 及以下版本上,在提交到 pdf url 时,它不会在浏览器窗口上显示 pdf,而是将 pdf 下载到本地机器:(
猜你喜欢
  • 1970-01-01
  • 2011-06-19
  • 2013-04-13
  • 1970-01-01
  • 2013-10-15
  • 2015-01-25
  • 2017-06-03
  • 1970-01-01
  • 2016-05-06
相关资源
最近更新 更多