Long waiting for content with loader is not good, but waiting without loader is deffinitely bad. Loader image is feedback, you should provide it anyway. Long actions without feedback are very confusing.
You can try to solve your issue on the different levels.
Technical level -- either pre-load DOM structure and cache it or load it with data in parallel ajax queries. Display loader until both the requests are handled.
Also you can pre-load DOM structure before user requests the goods info.
Psychological level -- make long waiting tricky or useful for user so it would not be perceived as pain. The tricky way is to create more faster animation. All the bars take about a second, but are perceived a little different. Useful way is to show some ad image to user. Using fading effect stoles some time.
According to your data, waiting up to one second is not so painful for user.
var tpl = "<h1>#header</h1> <p>#text</p>";
// fill template with data
var out = tpl.replace("#header", "Hello").replace("#text", "Long text");
Hope it helps.