Les navigateurs n'aiment pas les données sur une ligne unique de plusieurs (dizaines de?) milliers de caractères, en revanche le fait d'ajouter quelques retours de chariot bien pensé permet d'avoir des gains de temps de l'ordre du *1000 (un fichier de 100 000 lignes est passé de 5minutes à 15s pour vous donner une idée)
Cette petite fonction vous découpera votre json en une version heredoc de celle ci qui n'aura besoin d'aucun changement javascript à prioris.
function makecolumnjson($text) {
return preg_replace('`(\}|\]),`', "$1,\\\n", $text);
}
Autre problème relatif à ce genre de probèmes de perf, un innerHTML est meilleur qu'un millier, il est bien plus performant de stocker dans une variable javascript pour faire un seul innerHTML que de boucler et faire des innerHTML à chaque occurence.Voila, c'était les bons petits conseils de Looping qui n'arrive pas à dormir.