Helpdesk
Menschen Wissenschaft Politik Mystery Kriminalfälle Spiritualität Verschwörungen Technologie Ufologie Natur Umfragen Unterhaltung
weitere Rubriken
PhilosophieTräumeOrteEsoterikLiteraturAstronomieHelpdeskGruppenGamingFilmeMusikClashVerbesserungenAllmysteryEnglish
Diskussions-Übersichten
BesuchtTeilgenommenAlleNeueGeschlossenLesenswertSchlüsselwörter
Schiebe oft benutzte Tabs in die Navigationsleiste (zurücksetzen).

Programmieren: Hilfe & Austausch

920 Beiträge ▪ Schlüsselwörter: Programm, Code, Html ▪ Abonnieren: Feed E-Mail

Programmieren: Hilfe & Austausch

24.01.2013 um 12:51
@acc

das einzige was ich mir als lösung noch vorstellen kann ist eine variante der While schleife...

while(Lösung noch nicht da){
pause(1s)
}

wichtig wäre dabei die Pause in der Schleife, damit die verarbeitung nicht von der While schleife blockiert wird.

Anzeige
melden

Programmieren: Hilfe & Austausch

24.01.2013 um 12:53
@interpreter
Natürlich, aber es gibt kein Wait oder Sleep in JS :D


melden

Programmieren: Hilfe & Austausch

24.01.2013 um 12:55
@acc

klar gibt es das :D

console.log('vor der pause');
window.setTimeout(function () {
console.log('nach der pause');
}, 3000);


melden

Programmieren: Hilfe & Austausch

24.01.2013 um 12:58
@interpreter
Ja, Timeout schon. Aber das ist ja nicht direkt das Gleiche. Die Überfunktion (init_content) wartet dann ja trotzdem nicht, somit bleibt das Ergebnis gleich.


melden

Programmieren: Hilfe & Austausch

24.01.2013 um 13:01
@acc

wie wärs dann mit einer rekursiven verschachtelung?

function bla(){
if(lösung da){
code
}else{
timeout(bla(),1000)
}



}


melden

Programmieren: Hilfe & Austausch

24.01.2013 um 13:03
@interpreter

Wenn du eine Idee hast wie ich das dann aufs letzte Return bekomme :D


melden

Programmieren: Hilfe & Austausch

24.01.2013 um 13:06
@acc

globale variable :)


melden

Programmieren: Hilfe & Austausch

24.01.2013 um 13:09
@interpreter

Das nutzt mir aber nichts, die Funktion wartet dann ja trotzdem nicht und arbeitet weiter. Da müsste ich schon alles mit Timeouts zupflastern und das wäre mir dann doch irgendwie zu wackelig. Entweder hab ich dann künstlich verlängerte Ladezeiten oder das Risiko, dass mal eine Abfrage über die Wartezeit hinaus geht.

Scheint mir wenig elegant zu sein :D


melden

Programmieren: Hilfe & Austausch

24.01.2013 um 13:19
@acc

ja, elegant kannst du vergessen, bei JS...

könntest den rest von init_content in die Callback Funktion schreiben. aber ansonsten fürchte ich, gibt es keine möglichkeit.


melden

Programmieren: Hilfe & Austausch

24.01.2013 um 13:32
@interpreter

Ja, so kann ich ne zentrale Datenbankfunktion vergessen. dbe() fliegt also raus, das geht bei Node einfach nicht. Aber das ist ja nicht schlimm, muss man halt nur etwas umdenken, wenn man von PHP oder so kommt. Die Vorteile von Node sind einfach zu überwiegend, als sich deswegen an alte gewohnte Strukturen zu klammern.

Schneller und resourcenfreundlicher geht wohl kaum.


melden
AnGSt ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Programmieren: Hilfe & Austausch

24.01.2013 um 15:46
@interpreter
@acc

Die zweite schließende Klammer ist nur ein Fehler beim kopieren des Ausschnitts, ich habe eine success-if-abfrage an der stelle entfernt für den besseren Durchblick. PHP meckert bei sowas gleich. Das kann nicht der Grund sein. Ich denke inzwischen, dass es an der Tatsache liegt, dass die Datenbank, aus der da gelesen wird, irgendwo anders im web liegt. Imo muss dann bei jedem SELECT die Verbindung dorthin neu aufgebaut werden? Also Anfrage senden, warten, empfangen oder so. Kann das sein?


melden

Programmieren: Hilfe & Austausch

24.01.2013 um 15:58
@AnGSt

Ja, möglich. Hat die externe DB keine API, die dir den ganzen Datensatz in einem Stück schicken kann?


melden
AnGSt ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Programmieren: Hilfe & Austausch

24.01.2013 um 16:03
@acc

Keine Ahnung, es ist eine simple mysql db. An was zB denkst Du?

Ich müsste nichts weiter tun, als nur eine einzige SELECT anfrage zu machen, nicht mit LIMIT 1 sondern alle Datensätze betreffend. Und dann hole ich mir daraus was ich brauche anstatt jedes mal neu zu selecten. Wundert mich aber, da es in nem anderen Skript scheinbar viel schneller geht.


melden

Programmieren: Hilfe & Austausch

24.01.2013 um 16:08
Weiss ja nicht welche Methode du da benutzt. Ich hab da immer mit PDO gearbeitet http://php.net/manual/de/book.pdo.php

Aber meine Datenbanken liefen allein schon aus Sicherheitsgründen nur über Localhost. Die würden also auf Anfragen von "ausserhalb" gar nicht erst reagieren.

Bastel dir doch mal eine Testausgabe, inklusive connect und disconnect. Dann kannst du ja den Ablauf nachvollziehen. Und wenn du die Ausgabe mit Timestamp machst, sogar zeitlich.


melden
AnGSt ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Programmieren: Hilfe & Austausch

24.01.2013 um 16:10
ich bekomme das was das script an Text aus gibt erst zu sehen wenn die Seite vollständig geladen hat (wenn das script fertig ist). Gibts da ein flag um in Echtzeit zu empfangen? @acc


melden

Programmieren: Hilfe & Austausch

24.01.2013 um 16:11
@AnGSt

Einfach mit Echo rausschmeissen. Bau dirn Testscript.


melden
AnGSt ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Programmieren: Hilfe & Austausch

24.01.2013 um 16:12
@acc

Hab ich schon. Alles was geechot wird erscheint in meinem Firefox erst wenn alles da ist.


melden

Programmieren: Hilfe & Austausch

24.01.2013 um 16:17
@AnGSt

Kann aber eigentlich nicht sein, es sei denn du hast das so programmiert. Bufferst du erst vor der Ausgabe oder wieso kommt das nicht sofort?


melden
AnGSt ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

Programmieren: Hilfe & Austausch

24.01.2013 um 16:18
@acc

Ich wüsste nicht dass ich buffere. Kann man das irgendwo ein oder aus schalten?


melden

Programmieren: Hilfe & Austausch

24.01.2013 um 16:24
@AnGSt

Weiss jetzt zwar nicht mehr wie sich das genau nennt, aber bei der Methode werden alle Ausgaben in einen Buffer geschmissen und erst am Ende ausgegeben. Aber ich kann so schlecht was dazu sagen, weil ich deine Struktur und PHP-Settings nicht kenne. Müsstest du jetzt mal selbst nachforschen, ob das an deiner Konfiguration oder an was Script-internem liegt.

Bei einer 0815-PHP-Installation hauts jedes Echo sofort raus.


Anzeige

melden