délai côté php
This commit is contained in:
40
index.php
40
index.php
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user