title: AJAX call freezes browser for a bit while it gets response and executes success
body: <p>I am doing an AJAX call to my webserver which fetches a lot of data.  i show a loading image that spins while the ajax call is executed and then fades away.</p>
  
  <p>the thing i have noticed is that all of the browsers on this particular call will make it non-responsive for about 7 seconds.  That being said, the loading image is NOT spinning as what i had planned while the fetch was occurring.</p>
  
  <p>I did not know if this was something that happens or if there is a way around to, in a sense cause there to be a fork() so that it does 1 thing, while my loading icon still spins.</p>
  
  <p>THoughts?  Ideas?</p>
  
  <p>below is the code as someone wanted to see it:</p>
  
  <pre><code>$("div.loadingImage").fadeIn(500);//.show();
              setTimeout(function(){
              $.ajax({
                  type: "POST",
                  url: WEBSERVICE_URL + "/getChildrenFromTelTree",
                  dataType: "json",
                  async: true,
                  contentType: "application/json",
                  data: JSON.stringify({
                      "pText": parentText,
                      "pValue": parentValue,
                      "pr_id": LOGGED_IN_PR_ID,
                      "query_input": $("#queryInput").val()
                  }),
                  success: function (result, textStatus, jqXHR) {
                      //alert("winning");
                      //var childNodes = eval(result["getChildrenFromTelTreeResult"]);
                      if (result.getChildrenFromTelTreeResult == "") {
                          alert("No Children");
                      } else {
                          var childNodes = JSON.parse(result.getChildrenFromTelTreeResult);
                          var newChild;
                          //alert('pText: '+parentText+"\npValue: "+parentValue+"\nPorofileID: "+ LOGGED_IN_PR_ID+"\n\nFilter Input; "+$("#queryInput").val() );
                          //alert(childNodes.length);
                          for (var i = 0; i &lt; childNodes.length; i++) {
                              TV.trackChanges();
                              newChild = new Telerik.Web.UI.RadTreeNode();
                              newChild.set_text(childNodes[i].pText);
                              newChild.set_value(childNodes[i].pValue);
                              //confirmed that newChild is set to ServerSide through debug and get_expandMode();
                              parentNode.get_nodes().add(newChild);
                              TV.commitChanges();
                              var parts = childNodes[i].pValue.split(",");
                              if (parts[0] != "{fe_id}" &amp;&amp; parts[0] != "{un_fe_id}") {
                                  newChild.set_expandMode(Telerik.Web.UI.TreeNodeExpandMode.ServerSide);
                              }
                          }
                      }
                      //TV.expand();
                      //recurseStart(TV);
                  },
                  error: function (xhr, status, message) {
                      alert("errrrrror");
                  }
              }).always(function () {
                      $("div.loadingImage").fadeOut();
                  });
                  },500);
  </code></pre>
  
  <p>A corworker of mine noticed this issue, and suggested i add a setTimeout(function(){..},500); but it does not fix the issue at hand, so it will most likely be removed.</p>