Not sure which (if either) will help you, but I use an alias to /join -n #channelname all my channels, and in options IRC I have Keep channels open checked so they don't actually close when I'm disconnected. When I reconnect, I use an alias to /join -n #channel1,#channel2 etc.