Gibt es eine Möglichkeit, die neuesten Antworten sofort anzuzeigen? Derzeit verwende ich diesen Code:
api.onPageChange(() =
if (window.location.pathname === "/") {
const container = document.querySelector(".latest-topic-list");
if (!container || container.dataset.modified === "true") return;
fetch("/posts.json?order=created")
.then(res = res.json())
.then(data = {
const replies = data.latest_posts
.filter(p = p.post_number 1 p.topic_slug.includes("private-message"))
.slice(0, 15);
const topicFetches = replies.map(post =
fetch(`/t/${post.topic_id}.json`)
.then(res = res.json())
.then(topic = {
return {
post,
category: topic.category_id ? topic.category_name : null,
tags: topic.tags || []
};
})
);
Promise.all(topicFetches).then(results = {
const rows = results.map(({ post, category, tags }) = {
const url = `/t/${post.topic_slug}/${post.topic_id}/${post.post_number}`;
const avatarUrl = post.avatar_template.replace("{size}", "45");
const excerpt = post.excerpt?.replace(/<\/?[^\/>]+(>|$)/g, "")?.slice(0, 120) + (post.excerpt?.length 120 ? '...' : '') || '';
const categoryHtml = category
? `span style="font-size: 0.85em; color: #666;"Categoria: strong${category}/strong/spanbr`
: '';
const tagsHtml = tags.length
? `span style="font-size: 0.85em; color: #666;"Tags: ${tags.map(tag = `span style="background:#eee; padding:2px 6px; border-radius:3px; margin-right:4px;"${tag}/span`).join("")}/span`
: '';
return `
tr class="topic-list-item"
td class="main-link clearfix"
div style="display: flex; align-items: center; gap: 16px; padding: 8px 0;"
div style="flex-shrink: 0;"
a class="avatar-link" href="/u/${post.username}"
img loading="lazy" width="45" height="45" src="${avatarUrl}" class="avatar" alt="${post.username}"
/a
/div
div style="display: flex; flex-direction: column; justify-content: center; padding-top: 8px; padding-bottom: 8px;"
span class="link-top-line" style="margin-bottom: 6px;"
a href="${url}" class="title raw-link"${excerpt}/a
/span
div class="link-bottom-line"
${categoryHtml}
${tagsHtml}
/div
/div
/div
/td
/tr
`;
}).join("");
// Cria o contêiner da seção de últimos comentários
const latestRepliesContainer = document.createElement("div");
latestRepliesContainer.className = "latest-replies-container";
latestRepliesContainer.style.marginTop = "2em";
latestRepliesContainer.innerHTML = `
table class="topic-list latest-topic-list"
thead
tr
th class="default"Últimos Comentários/th
/tr
/thead
tbody
${rows}
/tbody
/table
`;
container.parentNode.insertBefore(latestRepliesContainer, container.nextSibling);
container.dataset.modified = "true";
});
})
.catch(error = {
console.error("Erro ao buscar últimos comentários:", error);
});
}
});
/scriptaber es dauert im Durchschnitt 2 Sekunden, bis der Inhalt erscheint. Dasselbe passiert bei den Blocks in der rechten Seitenleiste mit "kürzlichen Antworten". Ist das normal?