So no problem when wifi is off .... and there is the problem with the spinning ball when wifi is on.
Deleting the SystemConfiguration folder which has network "stuff" in it temporarily fixes the problem.
So doesn't it suggest that iphoto is trying to do something involving the network and when it finishes/fails doing whatever the spinning ball stops.
The only 2 obvious network options in iphoto preferences are:-
Sharing -> Look for shared photos
General -> Check for iphoto updates automatically
Both are unchecked now ... but made no differences to fixing the problem.
Friends and I only started to see this spinning ball at Iphoto startup on Lion and Mountain Lion .... we were all fine on Snow Leopard.
The Iphoto version has been the same across Snow Leopard, Lion, Mountain Lion .. Iphoto 08 (7.1.5 (378))
I just check Iphoto on my Snow Leopard system and no spinning ball.
Iphoto 08's preferences seems very basic and doesn't mention RSS or online galleries.
Well progress on determining what causing the spinning ball when Iphoto is started.
It looks like it's either Bonjour or something in that area.
If I unload com.apple.mDNSResponder.plist and start and quit iphoto several times there's no spinning ball.
I can not permanently stop com.apple.mDNSResponder.plist from being loaded because it disables DNS.
I did try adding the program argument NoMulticastAdvertisements to mDNSResponder but it made no difference and I got the spinning ball when com.apple.mDNSResponder.plist was loaded at system startup .... assuming I made the change correctly.
Any thoughts ?
I've suffered from spinning ball on opening of iPhoto too. I've noticed Photo Stream slows the programme down as it updates the stream. So you can turn that off. The big thing that seees to have helped me is delete all the faces I had. The constant search for matching faces was also slowing the running of the porgramme.
Try changing your primary DNS server. In my case, after a LOT of trial and error, I discovered the culprit was OpenDNS. Go into your network prefs and change your DNS settings to google's free DNS server (18.104.22.168). That worked for me. Later I found a more detailed explanation here.