This is a slow reason. DATA.games can be huge and you call (ok, cached) $("#gameslist")
but you use append() for each iteration of the loop.
To speed things up, create a variable that will contain a string representation of your HTML (containing DIVs and data) than inside the for loop attached to the string using += than when the loop is complete only to be added once to your $("#gameslist")
Here I created a live demo to show you the sharp difference:
Only for 1000 iterations and HTML complexity only 4 elements / iterations
Using .append() inside a loop = ~ 100 ms
Using .append() only once (after the loop) = ~ 30 ms
Both tests in for loop ... This is just using .append() in the right direction / place.
Now about the speed differences between $.each and the old old for , I found an interesting jsPerf:
http://jsperf.com/browser-diet-jquery-each-vs-for-loop ( Note: above)
Note: Test fragment: var initialTime = new Date().getTime(); for(var i=0; i<10000; i++){
source share