Performance issue in getting permission matrix

At a customer I don't have access to a development environment, so I need to do everything OOTB. Ofcourse SharePoint isn't made to be OOTB for every customer, hence SPServices Library.

I need to build functionalitity to get all the permissions for a user on all the sites.

So what do I do?

First there is a selection on the user ($().SPServices.SPAutocomplete), this gives no problems.
Then I select a subset of sites we want to query (due to performance issue, explained later)
What I do then is get all the groups the user is part of and put it in an array. Next I get all the webs (and children => recursive) and create an html-table where the TD's have unique ID's. This also runs without any major issues.

But then, I need to get for every cell the permission of the group and web (row-column combination). This is not performant at all and makes my browser crash all the time, even for very little gets. I have even implemented the code with an interval, so that
I can manage the timeouts. And it works if I put the timeout high enough, but this is so slow and takes ages to complete for big subset of sites and alot of groups.

So basically I need a matrix with permissions for a specific user (later to be implemented for ALL groups).

Does anyone have any idea where I'm going wrong? I have tested this with 0.7.2, SP2013.01 and SP2013.02. I have read a post from Paul stating something about caching (https://spservices.codeplex.com/workitem/10182),
that's why I moved to SP2013.02.

Without trying to run this, I can see that you're trying to make all the calls synchronously. That'll hang up the browser for a long time.

Take a look at jQuery promises. As of version 2013.01, SPServices returns a promise from every call, and by processing using those promises, you should be able to make this work. There's a link to one of my blog posts on the home page showing the differences
in using promises vs. not.
◾2013-03-09 - Comparing SPServices 2013.01 Calls with Async vs. Promises Methods