Recently, I ran into a problem with my application: the size of the JSON string returned from the server was exceeding the default maxJsonLength. I’ve done some research and implemented some fixes including a variation of paging. Everything looks great at the moment. However, I still have some questions unanswered.
First of all, the majority of the sources point to this article:
http://geekswithblogs.net/frankw/archive/2008/08/05/how-to-configure-maxjsonlength-in-asp.net-ajax-applications.aspx
- Why 2,097,152 (2MB)? 2MB is way too much data to be loaded for a web page. (Unless, the user is downloading something, but that’s a different story) Even 1MB is too much.
- Than, the author goes on with an example of maxJsonLength of 500,000. Why this number? Is this just an example of how to set the property? Some sources state that 500,000 is the limit. Well, it’s not, because I tested my application with 2,097,152 (2MB, roughly 4 times the 500,000) and it worked
- Some other sources state that 4MB is the limit… So, what is the limit? Is there a limit? Does it have something to do with the limit of the response from the server?
- Finally, I’d like to get a strong suggestion on a length of JSON string being received from the server. Not the number to which maxJsonLength should be set, but the actual length of the JSON string, kind of "what to strive for".
There is no hard and fast rule here. Your Json length is going to depend on your application and what information you are returning to the client.
If you really want a “rule of thumb”, it should be as SMALL as possible to communicate the data that you need.
For max values, the true limitation is again going to depend most likely on browser requirements, but I personally would never go with more than 2mb for a Json message simply due to what it would take to send that down.