棘手的懒惰加载问题

时间:2010-12-27 05:36:07

标签: html lazy-loading

问候Overflowers,

  • 结果集网格将从HTML页面查看快照。
  • Snaps需要保留原始页面布局,包括任何表格,图像......
  • 用户将滚动快照以完全读取对齐的页面
  • Snaps可以在HTML页面的任何位置查看不同大小的窗口

问题:可以实现延迟加载,以便只加载已查看的窗口而不会丢失对齐的HTML页面的交互性(例如超链接)?如果HTML页面无法以这种方式动态定制和延迟加载,则欢迎使用任何交互式文档格式(例如PDF,Flash)。

更新:抱歉让您感到困惑。捕捉不是图像,它们是HTML页面中任意位置的随机视口。在图像中它很简单,我们只能加载我们需要查看的部分。在HTML中,这很困难,除非该部分实际上是一个完整的可查看HTML标记元素,并且它适合所需的部分。 iframe只会促进窗口查看快照,但我不想加载整个HTML页面,因为它们很大,但只有需要的快照。问题快照可以在页面布局分区的中间某处,每个分区都非常大。因此,稍后单独修复布局大小和延迟加载其内容无济于事。我认为布局转换是必要的,但非常困难。我希望我可以拍摄完整的HTML页面并拍摄我需要查看的部分,并且此图像部分保持交互:)

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以将JavaScript与XMLHttpRequest(XHR)一起使用来异步获取内容并将该文本放在页面上(即延迟加载内容)。我不熟悉您正在使用的一些术语(例如,“snap”是什么),但如果您的布局指定了大小(而不是依赖于内容,例如,设置表列的大小),那么这种延迟加载可以在不重新渲染布局的情况下完成。

答案 1 :(得分:0)

正如我所解释的那样 - 你有一些带滚动条的固定大小的“viewport”div。你有Javascript监视视口的滚动事件。你必须(不知何故)对内页面上的内容元素有一些粗略的了解。如果某个部分滚动到尚未加载的视图中,则使用AJAX发送它。我认为这项努力中最棘手的部分是在不完全加载内容页面的情况下建立内容元素的粗略概念,但也许你已经对内容做了一些假设。

编辑:

  

我不想加载整个HTML页面,因为它们很大

这似乎表明您实际上对您正在使用的网页有一些假设。页面如何“大”?他们有大量的表格,大量的图像,大量的图像,Flash内容,javascript内容......?加载所有不属于某种标记类型的DOM,然后有选择地加载其余的DOM,您可能会有更好的成功。