Hallo, ich habe folgenden Javascript in meinem Browser am laufen und ich stelle fest das nach einigen Stunden der Ram immer langsam ansteigt, das wird solange weiter ansteigen bis irgendwann 100% erreicht sind und der browser abstuertzt und ich frage mich jetzt ob das bei allen Javascript Entwicklungen so ist das die nach einer laengeren Zeit immer den RAM Verbrauch vom Browser nach oben geht oder ob man mein Code verbessern kann damit das nicht mehr passiert:
Was ich am meisten benutze im Code ist eine Ajax JQuery Funktion zum lesen einer Datei und es wird immer nach 2 Sekunden der komplette Codeblock neu durchgefuehrt, ingesamt ist das eine Loesung von mir um Charts von Crypto Currencys immer neu zu downloaden.
Was ich am meisten benutze im Code ist eine Ajax JQuery Funktion zum lesen einer Datei und es wird immer nach 2 Sekunden der komplette Codeblock neu durchgefuehrt, ingesamt ist das eine Loesung von mir um Charts von Crypto Currencys immer neu zu downloaden.
Code:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script> <script type="text/javascript"> var Programstart=0; var Zaehler=0; var ZaehlerCoinsIndex=0; var AnzahlArrayIndexe=0; //--check json syntax function isJson(item) { item = typeof item !== "string" ? JSON.stringify(item) : item; try { item = JSON.parse(item); } catch (e) { return false; } if (typeof item === "object" && item !== null) { return true; } return false; } //--Objecte nur bei start erstellen, spart vielleicht Resourcen if(Programstart==0) { var xhttp3 = new XMLHttpRequest(); var xhttpvier = new XMLHttpRequest(); var Downloadliste_Coins_Object = new Object(); console.log("Program started"); } Programstart=1; //-- Server Funktion, ladet sich immer von neu function ServerFunktion() { DownloadCoins(); document.getElementById("test").innerHTML = "Zaehler "+Zaehler; //---- 1000 = 1 sekunde setTimeout(ServerFunktion, 2000); } //---- function DownloadCoins() { //--Coins in Array Object if(Zaehler==0) { //-- Coinnamen into Array var Downloadliste_Textinhalt = $.ajax({ url: "Downloadliste_CoinsToken.txt", contentType:"application/json", dataType:"json", async: false }).responseText; if(isJson(Downloadliste_Textinhalt)==true) { Downloadliste_Coins_Object = JSON.parse(Downloadliste_Textinhalt); }//json Check else alert("Download Liste json synatx error"); } //--Bitcoins Charts else if(Zaehler==1) { //--Bitcoin //console.log($.ajax({ url: strurl, contentType:"application/json", dataType:"json", async: false }).responseText); var strurl="Save_Chartdata_Poloniex.php?symbol=USDT_BTC&name=Bitcoin"; $.ajax({ url: strurl, contentType:"application/json", dataType:"json", async: false }); } else if(Zaehler==2) { //--Bitcoin var strurl="Save_Chartdata_Binance.php?symbol=BTCUSDT&name=Bitcoin"; $.ajax({ url: strurl, contentType:"application/json", dataType:"json", async: false }); } //-- USD Charts else if(Zaehler>2) { var Anzahl=Downloadliste_Coins_Object.Coins.length; var str=Object.keys(Downloadliste_Coins_Object); if(str.indexOf("Coins")>=0) { //console.log("Anzahl "+Anzahl+" "+Downloadliste_Coins_Object.Coins[ZaehlerCoinsIndex].broker+" "+Downloadliste_Coins_Object.Coins[ZaehlerCoinsIndex].name+" "+Downloadliste_Coins_Object.Coins[ZaehlerCoinsIndex].symbol); if(Downloadliste_Coins_Object.Coins[ZaehlerCoinsIndex].broker=="Poloniex") { var strurl="Save_Chartdata_Poloniex.php?symbol=BTC_"+Downloadliste_Coins_Object.Coins[ZaehlerCoinsIndex].symbol+"&name="+Downloadliste_Coins_Object.Coins[ZaehlerCoinsIndex].name; var res=$.ajax({ url: strurl, contentType:"application/json", dataType:"json", async: false }).responseText; document.getElementById("test2").innerHTML = res; } else if(Downloadliste_Coins_Object.Coins[ZaehlerCoinsIndex].broker=="Binance") { var strurl="Save_Chartdata_Binance.php?symbol="+Downloadliste_Coins_Object.Coins[ZaehlerCoinsIndex].symbol+"BTC&name="+Downloadliste_Coins_Object.Coins[ZaehlerCoinsIndex].name; var res=$.ajax({ url: strurl, contentType:"application/json", dataType:"json", async: false }).responseText; document.getElementById("test2").innerHTML = res; } //--Zaehler Array Index ZaehlerCoinsIndex++; //--Zaehler zurueck setzen if(ZaehlerCoinsIndex>=Anzahl) { Zaehler=0; ZaehlerCoinsIndex=0; } } } Zaehler++; } </script> <html> <body onload="ServerFunktion()"> <span id="test"></span> <span id="test1"></span> </body> </html>