0

我正在加载一个大小为 50 kb 的页面,其中有一个 web 服务调用。我在这里面临的问题是,在初始加载期间,它需要相当长的时间,并且在页面呈现之前会有轻微的挂起。

如何克服这个?否则是否有任何替代方法可用于加载功能可以更好地执行?

4

1 回答 1

3

如果我理解正确,您的页面的加载取决于此 Web 服务,这实际上是您的瓶颈。

你基本上有两个选择。

选项 1 - 缓存

如果您调用的 Web 服务不必在每次加载时都 100% 更新,则您可能会缓存响应。我不知道你现在是怎么做的,但如果它是第三方服务,你可以编写一个简短的代理程序来每分钟调用一次,并将响应保存到磁盘,然后你的页面将在磁盘上获取它从。

或者,如果您不想编写自己的代理服务,您可以使用类似 Squid 的东西,它可以缓存内部网络连接,因此如果您的应用程序通过 Squid 查询某些内容,它会将对该服务器的响应缓存t时间段。

选项 2 - AJAX

如果它是无法缓存的(即与网页上的会员详细信息有关),您可以查看使用 jQuery 异步加载页面。

您可以使用 $.ajax(); 而不是加载 web 服务预渲染的详细信息;函数加载它,然后在完全加载后使用 JavaScript 更新您的页面。

如果它是不同域上的第三方,您将不得不在您自己的系统上构建一个代理,以便您可以调用您网站的 AJAX URL,然后该 URL 将调用 Web 服务。


在他们两个中,如果可以的话,我会认真考虑选择选项 1。如果它是一个高流量的应用程序,缓存响应将大大加快您的应用程序的速度,并减少对 Web 服务的压力。

选项 2 仍然不错,亚马逊等许多大品牌都使用它来解决这些问题。

于 2012-05-01T09:34:06.233 回答