Forum: PC-Programmierung HTML, AJAX, JavaScript, Merkwürdigkeit im Script


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Jochen (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Das Java Scipt Programm in bmp.htm holt Daten (measure.dat) von einem 
Server und trägt 5 Werte in das Array 'param' ein (p[22] bis p[26]). Die 
eingetragenen Werte werden zusammen mit vorhandenen Werten in eine 
Temperatur und einen rel. Feuchtewert umgerechnet.

Das merkwürdige in diesem Programm ist die Zeile, die mit *1 
gekennzeichnet ist.

Ist die Zeile aktiv, dann gib sie '0-number' aus. Das ist die 
Merkwürdigkeit Nummer 1, da der Wert in P[22] 144 ist. Die Zeile, die 
mit *2 markiert ist, gibt korrekt '114-number' aus. Temperatur und rel. 
Feuchte werden richtig berechnet.

Klammere ich die *1-Zeile aus, kommt es zu Merkwürdigkeit Nummer 2. Es 
wird mit falschen Werten gerechnet und das Ergebnis ist dem 
entsprechend.

Das Programm ohne *1-Zeile nimmt die Startwerte (0, 0, 0, 0, 0) für 
p[22] bis p[26] und mit *1-Zeile die Werte, die vom Server kommen.


Wo liegt das Problem? Wie kann die *1-Zeile bewirken, dass verschiedene 
Werte zur Berechnung herangezogen werden?

von TestX .. (xaos)


Bewertung
0 lesenswert
nicht lesenswert
der 23. Wert in deinem "param" array ist 0.
Demzufolge ist param[22] ==> 0

Da es sich um den Typ "Number" handelt, gibts typeof(param[22]) nunmal 
"number" zurück - also wo ist dein Problem ? ;)

von Jochen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Andi ... schrieb:
> der 23. Wert in deinem "param" array ist 0.
> Demzufolge ist param[22] ==> 0
>
> Da es sich um den Typ "Number" handelt, gibts typeof(param[22]) nunmal
> "number" zurück - also wo ist dein Problem ? ;)

Das Problem ist, dass du das Problem nicht verstanden hast. Bitte noch 
einmal durchlesen. Insbesondere die beiden Fragen.

von g457 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> Wo liegt das Problem?

Du hast Nebenläufigkeiten nicht verstanden.

HTH

von Udo N. (weinbauer73)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Arrays fangen mit [0] an und nicht mit [1]. Daher ist param[22] = 0. 
Wenn du loadmeasure() in getparam() nach param[26] = s[6] (Zeile 141) 
setzt, sollte es klappen. Ajax ist asynchron!

von Jochen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Udo Neist schrieb:

> Arrays fangen mit [0] an und nicht mit [1]. Daher ist param[22] = 0.
> Wenn du loadmeasure() in getparam() nach param[26] = s[6] (Zeile 141)
> setzt, sollte es klappen. Ajax ist asynchron!

Das mit dem 'Ajax ist asynchron!' habe ich verstanden und es beseitigt 
auch Merkwürdigkeit 1 und 2.

Vielen Dank für deine Hilfe.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.