Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Cache voll?
#1
Hallo zusammen,
ich versuche gerade mit js meine Datenbank zu aktualisieren, indem ich in eine  Spalte neue Einträge reinschreibe. Um die benötigten Daten zu laden und später zu schreiben benutze ich fetch. Die Funktion funktioniert auch. Das Problem sind nur die vielen Einträge. Ich glaube da ich fetch benutze und so viele Daten asynchron lade, wird mein Arbeitspeicher schnell voll. Meine Frage ist jetzt, wie kann ich die for Schleife verändern, damit der Speicher nicht vollläuft. Kann ich z.B. den 1. fetch Befehl  irgendwie synchron laden?
Vielen Dank für eure Hilfe

Code:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
   
</body>
</html>

<script>

//wikiCode = "Q47554";





  errors = [];
  sucesses = 0;
  const params = new FormData();
  for (let i = 0; i < 880000; i++) {
        params.append('post_var1', i);
fetch("getWiki2Attractions3.php", {
            method: 'post',
            body: params
        }).then(res => {
            return res.text();
        }).then(res => {
            //console.log(res)
            output = JSON.parse(res)
            //console.log(output)
           
             
               
           
                //console.log(i)
            //console.log(output.towns[0].wikidata)
            if (output.towns.length == 0){errors.push(i)}
            wikiCode = output.towns[0].wikidata
            console.log(wikiCode)
            getSrcImage(wikiCode)
       
       
         
        })
   
//getSrcImage(wikiCode)

function getSrcImage(wikiCode){
    strImageAdd1 = "https://www.wikidata.org/wiki/Special:EntityData/"
    strImageAdd2 = ".json"
    //wikiCode = "Q3005760"
    strImageAdd = strImageAdd1 + wikiCode + strImageAdd2
   // console.log(strImageAdd)
    // console.log(outputWikiData)
     //prefix = "https://www.wikidata.org/wiki/"
     //prefix3 = "#/media/File:";
     //srcWikiData = prefix + wikiCode + prefix3 //+ outputWikiData
     //srcWikiData = prefix + wikiCode;
     //srcWikiData = "https://www.wikidata.org/wiki/Q6520258#/media/File:Leiston%20Abbey%20-Suffolk-3.jpg"

     //https://upload.wikimedia.org/wikipedia/commons/thumb/f/fd/Leiston_Abbey_-Suffolk-3.jpg/1280px-Leiston_Abbey_-Suffolk-3.jpg

     
     fetch(strImageAdd, {
            method: 'post',
           
        }).then(res => {
            return res.text();
        }).then(res => {
            output = JSON.parse(res)
        //console.log(output)
        console.log(output.entities[wikiCode].claims.P18[0])
        if(output.entities[wikiCode].claims.hasOwnProperty("P18")){
        outputWikiData = output.entities[wikiCode].claims.P18[0].mainsnak.datavalue.value;
       
        console.log(outputWikiData)

        prefix = "https://www.wikidata.org/wiki/"
    prefix3 = "#/media/File:";
    srcWikiData = prefix + wikiCode + prefix3 + outputWikiData
    console.log(srcWikiData)
    srcWikiData = srcWikiData.replaceAll(" ", "_");
    //srcWikiData = "https://www.wikidata.org/wiki/Q6520258#/media/File:Leiston%20Abbey%20-Suffolk-3.jpg"
console.log(srcWikiData)
console.log(typeof(srcWikiData))
const params = new FormData();
 
        params.append('post_var1', srcWikiData);
   
    php_function = "wikiDataConvertLink.php"
    fetch(php_function, {
            method: 'post',
            body: params
        }).then(res => {
            return res.text();
        }).then(res => {
            console.log(res)
            const params = new FormData();
 
  params.append('post_var2', srcWikiData);
  params.append('post_var1', wikiCode);
       
  fetch("writeWiki2srcAttractions.php", {
            method: 'post',
            body: params
        }).then(res => {
            return res.text();
        }).then(res => {
            if (res.includes("Error")){errors.push(i),console.log(res)}
            console.log(res)
            console.log("sucesses : ", sucesses = sucesses +1, ";errors", errors)
        console.log(j = j+1)
       
        })
        })

    }
    else{errors.push(i);console.log(errors)}
    })
         
   
   



}
  }
 

</script>
Zitieren


Nachrichten in diesem Thema
Cache voll? - von sfthbara - 10.06.2022, 12:48
RE: Cache voll? - von admin - 11.06.2022, 01:32

Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
1 Gast/Gäste