Когда вы делаете .html()
, браузер выдает аккуратно отформатированный HTML. То есть все теги закрыты, все атрибуты в кавычках и тому подобное. И то, что вы возвращаете из msgs.php
, скорее всего, не отформатировано идеально. Отсюда и разница.
Однако, если вас беспокоит неэффективность, этот метод будет все же довольно неэффективным. Я имею в виду, да, вы больше не обновляете пользовательский интерфейс, но вы все еще загружаете список сообщений с сервера, не так ли?
Чтобы сэкономить здесь пару байтов, вам лучше использовать технику «если модифицировано». То есть вместе со списком сообщений возвращаются какие-то временные метки. Скажем, просто целое число. Когда что-то меняется на сервере, увеличьте это число на единицу. При запросе обновления с сервера ваш AJAX-код должен передать предыдущую полученную временную метку, а затем сервер должен ответить «ничего не изменилось», если временная метка является текущей. В противном случае сервер должен передать новый список сообщений. Это, примерно, идея.