spree/spree — pull request #1976 by jsqu99 (2012-09-17 19:37:42+00:00)
Title: adds threading to chain of shipping_method.compute calls

Imagine you use FedEx, UPS, and USPS in your application.

Currently we make sequential API calls to each of these services.

With this commit, we can try all 3 at once in parallel. This could definitely have a positive impact on the user experience. Instead of waiting for a previous, slow call to finish, the other calls can start and finish while waiting on the slow call.

Note that the driving force for this change came from an application that is doing estimated shipping on the cart page.

In this particular application, the user is negatively affect earlier in the shopping process than with a standard spree app (each time the cart changes vs. the checkout/delivery page).

Even without estimated shipping, this commit will cause the delivery screen to load more quickly in many cases.