【问题标题】:Prerender HTML pages on older browsers在旧版浏览器上预渲染 HTML 页面
【发布时间】:2016-05-07 06:04:30
【问题描述】:


我有一个 webapp,我 99% 确定用户将要访问的下一页是什么。该页面必须从 API 中获取大量数据,并且还必须呈现它。由于这需要一些时间,我想预取/预加载页面。
我做了一些研究并阅读了this 文章。 prerender 标签正是我想要的。

遗憾的是,现有的 android 浏览器不支持它。

由于我将用它制作一个 android 应用程序,因此必须支持它。我想知道是否有 JS 框架或者类似 CrossWalk-project 的东西。可以做到这一点。

【问题讨论】:

  • 只是和仅供参考,通常当有大量数据要获取时是设计不佳的标志。我说通常......有边缘情况......但每次我看到这个......这是由于执行不力。 IE。也许它不是需要很长时间的数据,而是完成的工作,通常是因为它写得不好......即我已经采用了需要超过 9 秒到 0.2 秒的函数......数据大小是一样的。

标签: javascript html android-browser crosswalk


【解决方案1】:

在服务器端,渲染页面并刷新响应。然后加载数据并将其放入会话中。您可以在后台线程中执行此操作(不要忘记必要的同步),也可以在完成之前保持当前请求打开。用户可能会在浏览器中看到“仍在加载”的动画,但当前页面将是完整的,因此不应过多打扰他们。

如果下一页加载,请查看会话。如果数据已经存在,请使用它。如果没有,用户必须等待。

也就是说,您还应该检查您的数据模型以及您的数据库索引和查询。通常,您可以通过添加更多索引或优化 SQL 查询来显着缩短它们的执行时间。

【讨论】:

  • 我没有数据,所以无法优化。我是从 REST api 获取的,向我发送数据的服务器非常慢。
  • 啊。在这种情况下,使用我的第一个建议在用户阅读当前页面时获取数据。
  • 我要试试!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-12
  • 1970-01-01
  • 2011-07-20
  • 2015-10-22
  • 2011-12-17
相关资源
最近更新 更多