2012-08-14 38 views
3

为了提高响应速度,我认为预加载分页数据是个好主意。预加载页面,关于它的各种问题

推理过程如下:当用户阅读分页数据时,他们最有可能按顺序浏览页面。因此,花费用户阅读当前页面的时间是有意义的,将下一页加载到内存中(AJAX调用,保存生成的HTML,然后仅用“下一页”链接替换内容的innerHTML加载新页面)。同样,我可以将先前加载的页面保存在内存中,以便如果用户返回,页面可以立即重新出现,而无需再次往返服务器。

我主要关心的是这可能对浏览器的RAM使用率造成的影响。我的意思是,突然之间,我拥有了几页而不只是一页。这就是说,我的网页比我的版面大一百倍,而且他们工作得很好,所以我是否会反思这一点?

我的其他问题是数据可能会改变(我目前正在考虑论坛,用户可以编辑帖子或者(在最后一页的情况下)可以创建一个新帖子。可以避免将最后一页存储在内存中,但是有什么办法可以检查修改过的文章而不会影响整个缓存系统的目的吗?我能想到的最好的方法类似于静态资源缓存,其中请求可以但如果是这样的话,服务器可以用Not Modified做出响应,但是再次浏览网页的可能性要比编辑更多,所以几乎所有的请求都是Not Modified。我只是不确定如何去做这一切,或者如果它不值得担心。

+0

我认为不值得担心这个,除非你遇到实际的性能问题。无论如何,我可能只是预先加载下一个页面,而不是预先加载所有内容。 – elclanrs 2012-08-14 23:15:09

+0

我可能会在上一个/下一个方向上保存2或3页最大(我假设没有绝对巨大的)。那我真的不认为这会是一个问题!我认为这些家伙就是这样做的。 http://bleacherreport.com/articles/1296828-re-ranking-the-top-10-nba-players-in-the-world-post-olympics-edition/page/4 – 2012-08-14 23:19:36

回答

1

许多网站使用“无限”滚动,允许一次加载许多许多图像。我相信大多数浏览器根据实际显示的内容来管理内存。在某些情况下进行“无限”滚动可能比在分页中使用更友好。

你可以在一个线程上有一个“上次修改”标签 - 然后当你检查网站的正常更新时,你可以比较上次修改和HTML中存储的日期。如果更改是最新的,则获取并更新最新版本的帖子。老实说,这可能不值得担心 - 人们习惯于重新加载浏览器来检查更改。

+0

感谢您的提示。无限滚动可能不是我现在所想的最好的主意,但这绝对是我网站其他区域需要考虑的事情。 – 2012-08-14 23:27:16

1

缓存提高了性能,所以做到了。如果RAM成为问题,请释放(删除)未被使用的旧页面。

最重要的是,你应该保持访问分析工具来了解如何用户网站互动。对别人有好处可能对你没有好处。这完全是关于用户体验 - 您将不得不做测试并确定您的用户的最佳体验是什么。

+0

“如果RAM成为问题”......我将如何检测? – 2012-08-14 23:27:37