amend a few things

- reintroduce the doFetch after changing code swept it away...
- prevent multiple submission at the same time
- remove toggle for the time being
This commit is contained in:
Tommy Verrall
2023-10-16 13:03:05 +02:00
parent b20b943d74
commit 4e823ef79d
3 changed files with 36 additions and 35 deletions
+3 -1
View File
@@ -136,6 +136,8 @@
/>
</div>
<br />
<!-- comment out for the time being..
<div class="mb-6">
<label class="form-label">Return JSON:</label>
<div class="form-check form-switch">
@@ -149,7 +151,7 @@
>Yes/No</label
>
</div>
</div>
</div> -->
<br />
<button class="btn btn-primary w-100" id="fetch-button">Fetch</button>
</div>
+32 -28
View File
@@ -15,7 +15,7 @@
class WebWorkerClient {
worker = null;
constructor() {
constructor(onComplete) {
this.worker = new Worker("./worker.js");
this.worker.onmessage = (ev) => {
@@ -26,6 +26,9 @@ class WebWorkerClient {
displayReceivedRawString(rawString);
break;
}
if(onComplete) {
onComplete();
}
}
};
}
@@ -48,51 +51,52 @@ class WebWorkerClient {
let client = null;
async function main() {
client = new WebWorkerClient();
client = new WebWorkerClient(() => {
fetchButton.disabled = false;
});
const fetchButton = document.querySelector("#fetch-button");
fetchButton.onclick = function (e) {
if (fetchButton.disabled) {
alert("Processing... Please wait!");
return;
}
const fetchButtonText = document.querySelector("#fetch-button");
fetchButtonText.onclick = function (e) {
document.getElementById("output").innerHTML = "";
if ($("#fetch_payload").val().trim() === "") {
e.preventDefault();
let errorDiv = document.createElement("div");
let paragraph = document.createElement("p");
paragraph.style.color = "red";
paragraph.innerText = "please enter a valid request!!";
paragraph.innerText = "Please enter a valid request!!";
errorDiv.appendChild(paragraph);
document.getElementById("output").appendChild(errorDiv);
return false;
}
doFetch();
fetchButton.disabled = true;
client.doFetch($("#fetch_payload").val().trim());
};
}
async function doFetch() {
const url = document.getElementById("fetch_payload").value;
const returnJson = document.getElementById("returnJsonToggle").checked;
document
.getElementById("fetch-button")
.addEventListener("click", async () => {
const url = document.getElementById("fetch_payload").value;
//introduce toggle in the future
//const returnJson = document.getElementById("returnJsonToggle").checked;
displaySend(`Fetching: ${url}`);
try {
const response = await fetch(url);
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
}
let data;
if (returnJson) {
data = await response.json();
} else {
data = await response.text();
}
displayReceivedRawString(data);
} catch (error) {
console.error("There was a problem fetching the data:", error);
}
try {
await client.doFetch(url);
} catch (error) {
console.error("There was a problem fetching the data:", error);
}
});
}
/**
+1 -6
View File
@@ -181,11 +181,6 @@ async function nativeSetup() {
],
};
console.log(extra);
console.log(preferredGateway);
console.log(validator);
console.log(preferredNetworkRequester);
await setupMixFetch({
preferredNetworkRequester,
preferredGateway: preferredGateway,
@@ -311,7 +306,7 @@ async function main() {
goWasmSetLogging("trace");
// test mixFetch
// await testMixFetch();
await testMixFetch();
//
// // run test on simplified and dedicated tester:
// // await testWithTester()