1. Добавлять обработчик при отрисовки новых кнопок
или
2. Повесить обработчик на элемент более верхнего уровня, которые не перерисовывается при добавлении новых элементов
сокеты имеет смысл держать только для данных, которые изменяются динамично и надо обновлять их на клиенте, для остальных задач это избыточно, там, где можно обойтись обычными http запросами лучше их и использовать
Do not declare methods using ES6 arrow functions (=>). Arrow functions explicitly prevent binding this, so your method will not have access to the document and the above examples will not work.
потому что в асинхронном режиме статус на момент его проверки еще не установлен.
Необходимо подписаться на событие `readystatechange`, что бы обработать результат запроса
Включить - никак.
Во-первых сервер должен поддерживать HTTP/2. Во-вторых клиентская реализация должна поддерживать HTTP/2.
Прелесть в том, что правильная реализация прекрасно умеет работать как по HTTP/2 так и по более ранним версиям протокола. К. т. версия протокола HTTP это более низкий уровень абстрации и для XMLHTTPRequest не имеет значения версия протокола.