Внешне используемые для выполнения похожих задач, JsonML и innerHTML - совершенно разные звери.
innerHTML требует, чтобы у вас была вся разметка в точности так, как вы хотите, чтобы она была готова к работе, а это означает, что либо сервер выполняет разметку, либо вы выполняете дорогостоящие объединения строк в JavaScript.
JsonML открывает двери для клиентских шаблонов через JBST, что означает, что ваш шаблон преобразуется из разметки HTML в шаблон JavaScript во время сборки. Во время выполнения вы просто предоставляете данные и получаете элементы DOM для вставки или замены существующего элемента (что-то, что innerHTML не может легко сделать без дополнительного создания DOM). Перепривязка требует только запроса дополнительных данных, а не всей повторно обработанной разметки. Именно здесь можно добиться большого прироста производительности, поскольку разметка может запрашиваться / кэшироваться отдельно от данных.
Для простоты innerHTML был предпочтительным методом для стиля шаблона HTML-сообщения Ajax. Но наборы инструментов, такие как JsonFx, могут сделать использование JsonML и JBST таким же простым, предоставляя полный шаблон Ajax на стороне браузера.