Jo, to je presne ten problem. V tom kodu si to muzes debugovat nebo napsat alerty, kdybys chtel. li = 20, takze to prochazi jen prvni radek. ale trva to 0.4s, coz je moc. Ted se mi podarilo najit kod pro mereni textu. Projdu slovo po slove, protoze to mam v poli a cas je 25% :)
V okamziku, kdyz v puvodnim kodu napisi offset, treba pro element table, tak cas vyskoci z 20 na 400.
function getTextWidth(text, font) {
// re-use canvas object for better performance
var canvas = getTextWidth.canvas || (getTextWidth.canvas = document.createElement("canvas"));
var context = canvas.getContext("2d");
context.font = font;
var metrics = context.measureText(text);
return metrics.width;
}
getTextWidth.canvas = document.createElement("canvas")
Na te strance stackoverflow je i reseni s divkem, ale to se ukazalo jako stejne pomale, jako je offset pro td.