我正在加载一个大小为50 kb的页面,里面有一个webservice调用。我在这里面临的问题是,在初始加载期间,它需要相当长的时间,并且在页面呈现之前会有轻微的挂起。
如何克服这个?否则是否有任何备用可用于负载功能,可以更好地执行?
答案 0 :(得分:3)
如果我理解正确,您的网页加载取决于此网络服务,这实际上是您的瓶颈。
你基本上有两个选择。
选项1 - 缓存
如果您正在调用的Web服务不必在每次加载时都是100%最新的,那么您可能会缓存响应。我不知道你现在是怎么做的,但如果它是第三方服务,你可以编写一个简短的代理程序来每分钟调用一次并将响应保存到磁盘,然后你的页面会把它拿起来从。
或者,如果您不想编写自己的代理服务,可以使用类似Squid的东西来缓存内部网络连接,因此如果您的应用程序通过Squid查询某些内容,它会将响应缓存到该服务器以进行< em> t 时间段。
选项2 - AJAX
如果它是无法缓存的东西(即与网页上的成员资格有关的东西),你可以看看用jQuery异步加载页面。
您可以使用$ .ajax();而不是加载Web服务预呈现的细节。函数加载它,然后在完全加载后用JavaScript更新页面。
如果它是不同域的第三方,则必须在自己的系统上构建代理,以便您可以调用站点的AJAX URL,然后调用Web服务。
在其中两个中,如果可以的话,我会认真考虑选择选项1。缓存响应会大大加快您的应用程序速度,并且如果它是一个高流量应用程序,将减少Web服务上的压力。
选项2仍然很好,许多亚马逊等大品牌都在使用它来应对这些问题。