délai côté php

This commit is contained in:
2026-01-17 23:48:35 +01:00
parent 2ca24a312b
commit a1606819a1
2 changed files with 42 additions and 19 deletions

View File

@@ -53,30 +53,34 @@
const citation = document.createElement('blockquote');
citation.innerText = formulaireData.get('question');
conversation.appendChild(citation);
formulaire.reset();
const requete = await fetch(formulaire.action, {
method: formulaire.method,
body: formulaireData
});
const paragraphe = document.createElement('p');
paragraphe.setAttribute('aria-busy', 'true');
conversation.appendChild(paragraphe);
const reponse = await requete.text();
paragraphe.setAttribute('aria-busy', 'false');
Array.from(reponse).forEach((lettre, i) => {
setTimeout(() => {
if (lettre == "\n") paragraphe.innerHTML += "<br>";
else paragraphe.innerHTML += lettre;
}, i * 40);
const requete = await fetch(formulaire.action, {
method: formulaire.method,
body: formulaireData
});
setTimeout(() => {
conversation.innerHTML += "<p>😸 Voulez-vous que je réponde à une autre question ?</p>";
conversation.scrollTop = conversation.scrollHeight;
bouton.disabled = false;
bouton.setAttribute("aria-busy", false);
}, reponse.length * 40);
paragraphe.setAttribute('aria-busy', 'false');
const reader = requete.body.getReader();
const decoder = new TextDecoder("utf-8");
while (true) {
const { value, done } = await reader.read();
if (done) break;
const lettre = decoder.decode(value, { stream: true });
if (lettre == "\n") paragraphe.innerHTML += "<br>";
else paragraphe.innerHTML += lettre;
await new Promise(r => setTimeout(r, 0)); // micro pause pour rendre l'UI responsive
}
conversation.innerHTML += "<p>😸 Voulez-vous que je réponde à une autre question ?</p>";
conversation.scrollTop = conversation.scrollHeight;
bouton.disabled = false;
bouton.setAttribute("aria-busy", false);
});
</script>
</body>