我在解决在我正在构建的应用程序中加载其他数据的方法时遇到了一些困难。该应用程序是一个CMS,其中单个页面由许多片段组成 - 一些是可重用的,另一些是独占的。
独占片段的示例可能是描述/作者元标记,而可重用片段可能是链接列表。
我目前的做法是加载构成网页大部分内容的基本数据,例如:主体内容,标题,slu ,,日期(发布/到期/修改)。在加载该部分并且ui准备好之后,我加载了2个额外的数据集:元标记的集合;一系列碎片。
我的优惠是: 1.可扩展性 2.速度 3.可维护性
我的方法听起来还是应该考虑另一种方法?
答案 0 :(得分:2)
我假设你正在使用AJAX进行上面提到的延迟加载。
你的接近声音? 您的问题的答案取决于整个页面加载的速度(包括片段)。当我们想要创建页面被加载的感知时使用你的技术,这样用户在心理上就不会想要等待,
当整个页面被认为太长而无法加载时,会使用该技术。由于“太长时间加载”的措施是主观的,让我们以8秒为例。如果整个页面需要8秒钟加载而部分页面如主体等需要3秒钟,那么首先加载这些部分是明智的,这样用户在心理上就不会等待8秒钟。
至于你的3个标准:
可伸缩性:延迟加载会增加返回服务器的http调用次数,从而在服务器总调用次数方面引入额外负载,以及占用并发连接数的可能性。因此,延迟加载会给服务器带来额外的开销。但是,如果您的部署环境是正确的群集,则不应该对您造成任何重大问题。
速度: 这回到我之前所说的。如果您的整个页面加载速度非常快,那么对片段进行延迟加载实际上可能会减慢它(以总秒数计算),因为您正在对服务器进行额外的HTTP调用。在这种情况下,您也无法帮助用户理解。但是,如果加载整个页面的速度很长,那么这项技术很有意义,因为它可以提高用户对速度的感知,即使加速速度的总时间也可能更长。
可维护性:一个好的实现可以选择加载整个页面和片段中的几个简单代码。这表示您编写了一个可维护且灵活的代码。