IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Cyklus s XMLHttpRequestem trvá hrozně dlouho přes HTTPS, pře HTTP je proveden okamžitě

Aktivity
Avatar
Dominik Vokůrka:2.8.2022 12:08

Ahoj, dělám stránku pro jeden časopis a mám na ní všechna vydání toho časopisu která vyšla. Jde o to, aby zde byla co nejjednodušší správa, tak jsem udělal v javascriptu cyklus s XMLHttpRequestem, který zkontroluje všechna pdf ve složce s vydáními a cyklus se zastaví jakmile XMLHttpRequest vrátí na nějaké pdf 404. Ty pdf se v té složce jmenují 1.pdf, 2.pdf, 3.pdf, ... Tímhle cyklem získám kolik je pdf v té složce a ty se následně zobrazí na webu. Takže stačí aby se nové vydání nahrálo do složky na hostingu a ono se automaticky zobrazí na stránce. Funguje to perfektně přes HTTP, ale přes HTTPS ten cyklus trvá osm minut.

Zkusil jsem: Zkoušel jsem vygenerovat nový SSL certifikát, stránku na hosting nahrát znovu, ale nepomohlo.

function checkFileExist(urlToFile) {
    var xhr = new XMLHttpRequest();
    xhr.open('HEAD', urlToFile, false);
    xhr.send();

    if (xhr.status == "404") {
        return false;

    } else {
        return true;
    }

}
var pocetvydani = 0;
var result = true;

for (var i = 1; result == true; i++) {
    var result = checkFileExist("vydani/" + i + ".pdf");
    if (result == true) {
        pocetvydani++;
    }
}

Chci docílit: Chtěl bych aby cyklus byl proveden rychle jako přes HTTP. Budu rád za každou radu. Pokud někoho napadne jak detekci nového pdf ve složce udělat jinak, budu za něj rád.

 
Odpovědět
2.8.2022 12:08
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:2.8.2022 13:26

Kdyz to dlouho trva, tak si to uloz do databaze a pri opakovanem volani to mas hned.

A proc to zkousis pres stahovani head? Proc na to nemas php script na serveru, file_exists nebo opendir? Opakovane volani requestu v kratkem case ze stejne ip muze server vyhodnotit jako hackersky utok, ktery se snazi zjistit, zda na serveru existuje nejaky soubor.

A kdyz je to cislovane, proc to zkousis +1 na ne nasobenim?
1 2 4 8 16 exist, 32 neexist
16 + 1 2 4 8 (24 neexist)
hledane cislo je mezi 20-23
... to je teprve 9 requestu, kde ty mas uz 20
A, kdybys mel v souboru ulozene cislo, kolik jich tam bylo naposled, mozna by slo o 1-2-3 requesty.
Nebo muzes postupovat opacne.
200 100 50 25 12

 
Nahoru Odpovědět
2.8.2022 13:26
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.