DataTables + Font Awesome Repro

HTML

<script src="https://code.jquery.com/jquery-3.7.1.slim.js" integrity="sha256-UgvvN8vBkgO0luPSUl2s8TIlOSYRoGFAX4jlCIm9Adc=" crossorigin="anonymous"></script>


<!-- DataTables 3 beta -->
<link href="https://cdn.datatables.net/v/dt/dt-3.0.0-beta.2/datatables.min.css" rel="stylesheet" integrity="sha384-tLKnauoLdz/aakP+00ZPYfNEjH9C2JgxB7UwUcy3A7REuK2IUzqnrw9ZTNtuQERS" crossorigin="anonymous">
<script src="https://cdn.datatables.net/v/dt/dt-3.0.0-beta.2/datatables.min.js" integrity="sha384-HoL6dQNBnAKfnic9D7JK5KUAma6i+uAmpscrYD3GpOkrwLTogRJX4L8vBrEwFKIL" crossorigin="anonymous"></script>


 <!-- DataTables 2.2.2
    <link rel="stylesheet" href="https://cdn.datatables.net/2.2.2/css/dataTables.dataTables.css">
    <script src="https://cdn.datatables.net/2.2.2/js/dataTables.js"></script>
-->


<!-- Font Awesome 6.5.2 -->

<script>
// disable FA mutationObserver before loading
window.FontAwesomeConfig = {
  autoReplaceSvg: false,
  observeMutations: false,
  searchPseudoElements: false
};
</script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/js/all.min.js" crossorigin="anonymous"></script>

    




<h2>DataTables + Font Awesome Performance Test</h2>

<table id="testTable"></table>

CSS

body { font-family: sans-serif; margin: 20px; }
        table { width: 100%; }

JavaScript

function generateTableData(count) {
    const rows = [];
    for (let i = 0; i < count; i++) {
        rows.push({
            id: i,
            name: "User " + i,
            status: i % 3 === 0 ? "I" : (i % 3 === 1 ? "D" : "U"),
            timestamp: Date.now() - (i * 1000000)
        });
    }
    return rows;
}

function escapeHTML(value) {
    return String(value ?? "")
        .replaceAll("&", "&amp;")
        .replaceAll("<", "&lt;")
        .replaceAll(">", "&gt;")
        .replaceAll('"', "&quot;")
        .replaceAll("'", "&#39;");
}

function iconForEvent(event) {
    switch (event) {
        case "I": return '<span class="fa fa-solid fa-circle-check"></span>';
        case "D": return '<span class="fa fa-solid fa-circle-xmark"></span>';
        case "U": return '<span class="fa fa-solid fa-circle-info"></span>';
        default:  return '<span class="fa fa-solid fa-question-circle"></span>';
    }
}

const data = generateTableData(1500);

function initTable() {
    // Reset table
    document.getElementById("testTable").innerHTML = "";

    const table = new DataTable("#testTable", {
        data: data,
        paging: false,
        autoWidth: false,
        initComplete: function(settings, json) {
          // process Fontawesome icons
          requestAnimationFrame(function() {
            if (window.FontAwesome?.dom?.i2svg) {
              FontAwesome.dom.i2svg({
              node: document.querySelector("#testTable")
              });
            }
          });
        },
        columns: [
            {
                title: "ID",
                data: "id"
            },
            {
                title: "Name",
                data: "name",
                render: function(data, type) {
                    if (type === "display") {
                        return `<span>${escapeHTML(data)}</span>
                                <span class="ms-2"><i class="fa-solid...