要求是在服务器端保留完整网页的副本,就像它在客户端浏览器上呈现的一样,因为过去的records.These记录被重新访问。
我们正在尝试存储渲染的网页的html。然后使用存在于服务器侧的诸如javascript、css和图像的资源来呈现html。这些资源一直在变化。因此,旧记录不再完美呈现。
有没有其他方法来解决上面的问题呢?我们也在考虑使用IText或apache FOP api将其转换为pdf,但他们在转换时不考虑javascript对页面的影响。在java中有没有可以实现这一点的APIs?
到目前为止,还没有一种方法可以完美地工作。请提个建议。
编辑:总而言之,要求是在服务器端创建渲染的网页的精确副本,以存储该页面上的用户活动。
发布于 2012-01-18 03:58:20
wkhtmltopdf应该可以很好地为您完成这项工作。它将接受一个URL,并返回一个pdf。
code.google.com/p/wkhtmltopdf
示例:
wkhtmltopdf http://www.google.com google.pdf发布于 2012-01-18 04:52:39
取决于你的javascript有多复杂,以及你有多想要捕捉客户看到的东西,你可能正在承担一项不可能完成的任务。
在较高级别上,您有以下选项:
您可以使用JSP过滤器等实现#1,但它不能解决在客户端呈现时javascript获取动态html内容之类的问题。
让客户端返回他们正在看到的内容(#2)是一件棘手的事情,而且会占用大量的带宽。
为了让一个网站呈现动态内容版本化,你必须做几件事。首先,所有的数据源也需要版本化。因此,任何查询都需要指定版本。"Version“可以是时间戳,也可以是您维护的某个生成计数器。如果您采用这种方法,还需要确保您提供给客户端的任何javascript都不会直接获取外部资源。相反,它应该从您的系统中请求任何资源。您的系统将依次获取外部内容(或从缓存重用)。
发布于 2012-01-18 03:57:18
答案将取决于用来编写HTML的服务器技术。您是否正在使用Java/JSP、Servlet或某种HTTPResponse对象来将HTML/数据推送到浏览器?
如果只有CSS/JS/HTML在改变,为什么你不直接截取客户端代码库的快照并将其存储为网站版本呢?
如果涉及到其他数据(如XML/JSON),则获取这些数据的快照并对其进行版本化。然后,上面提到的客户端代码库的快照和数据的当代快照应该一起为您提供网站在该时间点的准确呈现。
https://stackoverflow.com/questions/8900796
复制相似问题