In terms of performance, wouldn't it be far faster to use strings and turn those into document fragments or setting innerHTML? I've been looking at ways to make crate much faster and it seems that would be the fastest solution by far.
Another plus is nodejs compatibilty (if you care about that, but I guess you might :)).