It would help if you provided some sort of debugging result from when you load your map. I know that you can get the console up on firefox with ctrl + shift + k. Then jump to javascript tab (because thats where errors happend to me) and you can find your error there. Usually the infinite loading icon means there is an error.
And yes you should create pyramids because they are more server-welcome because of the way they work. If you zoom out alot on a raster you will draw the raster with low quality (lower resolution) because you can't see the details anyways. That way you have a smaller raster with smaller pixel density, consiquently smaller size. But if you zoom in then the quality of the raster increases. That way you dont always display the raster at its full resolution but on the needed one, which is perfect for a server. You can even speed things up by increasing the compression level. You can find a better explanation why here: Handling Many Raster Files in QGIS?
Another option are tiles, which would cut your raster layer into smaller pngs for example. That way when you zoom in you display a small tile of that raster and not the small part of your huge raster. http://gis-lab.info/qa/qtiles-eng.html
For the example of publishing large data sets I can't really understand what you're trying to acquire. The web client displays your project, so you should publish your large data sets into your project and then create pyramids in that project. You can create pyramids like this: http://www.northrivergeographic.com/archives/pyramid-layers-qgis-arcgis