Yeah you can..
One of the solutions from the back of my head will be using a websocket connection. Sending the JSON documents in chunks along events reporting how much was transfered.
So, in the client side you listen on the socket for two events: data, which is the message containing a chunk of the json and progress which is an event from the backend reporting you how much is left to download.
of course, you can obtain the same results using normal ajax.