Are you the owner of the map service? Check the maximum number of features that can be returned in a query. You may be exceeding that maximum when zoomed out to the full extent.
The way you've coded your app, you're accessing the layers of the map service as features. The system sends a query to the server to get the feature geometry, which is then sent to the client to draw. The server has a limit on the number of features that can get returned in a given request. Is there a reason why you are accessing the map service in this way? Your app would be faster, probably, if you access the map service as a whole and allow the server to return an image instead of the features.
Thanks,
Mike