У этой кнопки вшита фиксированная высота в CSS, поэтому текст не помещается.
Надо убрать "height: 43px" в ".alm-btn-wrap .alm-load-more-btn" и "height:34px !important" в ".alm-load-more-btn". Или создать новое правило с "height: auto" для конкретно этой кнопки.
Кстати, не только в Safari, но и в Firefox. Удивительно что на винде работает.
Update:
Если необходимо, чтобы кнопка была одной строкой. тогда надо вот такое сделать:
Запросы посылаются к серверу через протокол HTTP в виде JSON/XML/form-data обычно (или любого другого формата, который сервер сможет понять). А дальше сервер уже лезет в БД напрямую и обновляет/добавляет/удаляет записи, в зависимости от типа запроса.
А нужно именно на чистом JS или есть jQuery? с jQuery попроще будет. В целом вроде бы правильно делаете. Только вот в tr по идее не может быть input, только td / th.
хранить в памяти не очень хочется - насчет этого не согласен, DOM-элементы у вас уже будут в памяти храниться во время рендеринга страницы, не вижу смысла эконопить на паре килобайтов
если же у вас миллион записей на странице показывается, то жто уже вопрос к архитектуре