Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
raxz
HV Guru
liitunud: 27.07.2003
|
17.12.2012 11:58:00
Javascripti muutuja muutumine uuendab veebilehte |
|
|
Tere,
On üks veebileht, ühes võrgus asuvas seadmes. Tegu ei ole arvutiga, kuid ta oskab jooksutada veebiserverit.
Lehe laadimisel käivitatakse rida,
<!-- AWP_Out_Variable Name='low1' Use='"Data".Status_word_target1.Signal_too_low'--> |
mis omistab javascripti muutujale low1 väärtuse, mis asub viidatud kohas (Use="").
Kuvatakse muutujat sellises kohas:
<table<tr><td>Madalal</td><td id='lo1'>:=low1:</td></tr></table |
Oleks vaja kuidagi küsida pidevalt neid väärtusi ja lehe sisu uuendada, kui väärtus on muutunud.
Viide võiks olla võimalikult lühike ja ei tohiks koormata brauserit, kuna leht võib olla terve päeva avatud.
Olen dünaamilist PHP lehte ajaxiga uuendanud, aga praegu ei saa enam kuidagi jagu. PHPd see seade ei tunne. Ainult html ja javascript.
Kas on mõnda head soovitust?
|
|
Kommentaarid: 46 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
45 |
|
tagasi üles |
|
 |
jnt
HV Guru

liitunud: 10.05.2005

|
|
Kommentaarid: 110 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
0 :: |
102 |
|
tagasi üles |
|
 |
raxz
HV Guru
liitunud: 27.07.2003
|
17.12.2012 12:47:09
|
|
|
Tegu on puhtalt HTML ja JSga. Ühtegi muud keelt see seade ei oska ning kogu lehe jaoks on max 2MB ruumi.
See esimene rida on ainus võõramaise päritoluga koodirida (AWP_Out_Variable...), millega omistatakse javascripti muutujale väärtus seadme seest.
|
|
Kommentaarid: 46 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
45 |
|
tagasi üles |
|
 |
infidel
HV kasutaja

liitunud: 31.01.2004
|
17.12.2012 12:52:10
|
|
|
Märksõnade järgi on tegu Siemensi loominguga. Siin on vähe täpsemalt kirjas.
Kas on mingi põhjus, miks ei sobi asja lahendada brauseri poolt (või siis päises "Refresh" märkega) kindla intervalliga lehe uuendamisega?
|
|
Kommentaarid: 36 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
35 |
|
tagasi üles |
|
 |
jnt
HV Guru

liitunud: 10.05.2005

|
|
Kommentaarid: 110 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
0 :: |
102 |
|
tagasi üles |
|
 |
karu
HV kasutaja
liitunud: 08.08.2002
|
17.12.2012 13:22:01
|
|
|
raxz kirjutas: |
Tegu on puhtalt HTML ja JSga. Ühtegi muud keelt see seade ei oska ning kogu lehe jaoks on max 2MB ruumi.
See esimene rida on ainus võõramaise päritoluga koodirida (AWP_Out_Variable...), millega omistatakse javascripti muutujale väärtus seadme seest. |
Tegelikult ei oska see seade ka HTML või JS'ga midagi teha. Ainuke mida ta oskab, on lugeda <!-- AWP_ ... --> tage ja teha search/replace väljundile.
Uploadi lihtne javascripti fail sinna mida siis saad jsonp meetodiga lugeda, näiteks
/* <!-- AWP_Out_Variable Name='low1' Use='"Data".Status_word_target1.Signal_too_low'--> */
update({"low1" : ":=low1:"}); |
loomulikult võid lihtsa teksti faili ka tekitada kus ainult 'low1' väljund, kuid jsonp javascripti keskkonnas on lihtsam
|
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
tagasi üles |
|
 |
raxz
HV Guru
liitunud: 27.07.2003
|
17.12.2012 16:39:47
|
|
|
Siemensi PLCga tegu. AWP asjad html failides ta asendab jah enda väärtusega ning muidu on tavaline server, kust laetakse HTML fail brauserisse.
Sinna masinasse laen ühe .js faili ja html faili võin enda arvutisse kirjutada?
See rida masinasse: /* <!-- AWP_Out_Variable Name='low1' Use='"Data".Status_word_target1.Signal_too_low'--> */
Ja enda masinasse: update({"low1" : ":=low1:"});?
Ilmselt pean hakkama mingi intervalli tagant muutuja väärtust küsima või see update teeb seda ise, kui midagi muutub?
Ma olen seda masinat täna näppinud ja muutujatele saab uued väärtused siis, kui see AWP koodiga leht uuesti laetakse.
|
|
Kommentaarid: 46 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
45 |
|
tagasi üles |
|
 |
karu
HV kasutaja
liitunud: 08.08.2002
|
17.12.2012 17:04:06
|
|
|
raxz kirjutas: |
Sinna masinasse laen ühe .js faili ja html faili võin enda arvutisse kirjutada? |
Mis html faili? Minu postituses html faili ei olnud
Kuid jah, html faili mis seda javascripti kasutab võid end arvutisse teha.
raxz kirjutas: |
Ilmselt pean hakkama mingi intervalli tagant muutuja väärtust küsima või see update teeb seda ise, kui midagi muutub? |
yep, nope
|
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
tagasi üles |
|
 |
raxz
HV Guru
liitunud: 27.07.2003
|
17.12.2012 21:54:47
|
|
|
Milline on kõige mõistlikum variant võimalikult kiiresti sisu uuendada? Brauseri puhvrid ja asjad võiks iga uuendusega tühjeneda.
setInterval on üks funktsioon. Seda tasub kasutada?
Pmst tahaks teha lihtsat visualiseerimist veebilehele, aga olekud võiks võimalikult kiiresti uueneda.
|
|
Kommentaarid: 46 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
45 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
17.12.2012 22:16:04
|
|
|
tsitaat: |
Siemensi PLCga tegu |
Ma kül ei tea, kas saaks, kuid minu meelest pole mingi takistus kasutada AJAX lehe uuenduses, bauser seda toetab ja mida see AJAX sisse loeb pole vist määrav.
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
raxz
HV Guru
liitunud: 27.07.2003
|
17.12.2012 22:22:21
|
|
|
Lehe uuenduses saab AJAXit kasutada küll, ma usun. Kui kiire see oleks ning kui palju brauserit koormab?
Küsimus on ka selles, et kuidas muutujad PLCst kätte saada.
Kui üks fail on näiteks data.js ning seal sees need AWP_Out_Variable read, millega muutuja väärtuse saab, siis index.htm küsib data.js'lt lihtsalt javascripti muutujate väärtusi ning uuendab <div> sees olevaid numbreid?
|
|
Kommentaarid: 46 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
45 |
|
tagasi üles |
|
 |
jnt
HV Guru

liitunud: 10.05.2005

|
|
Kommentaarid: 110 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
0 :: |
102 |
|
tagasi üles |
|
 |
raxz
HV Guru
liitunud: 27.07.2003
|
18.12.2012 00:14:34
|
|
|
setInterval(updateValues(), 500);
function updateValues() {
/* <!-- AWP_Out_Variable Name='msg' Use='"Data".Text'--> */
document.getElementById("message").innerHTML = :=msg:;
} |
Kas selline asi saab töötaks (ning kas see variant on ratsionaalne), kui poole sekundi tagant uuendada?
|
|
Kommentaarid: 46 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
45 |
|
tagasi üles |
|
 |
infidel
HV kasutaja

liitunud: 31.01.2004
|
18.12.2012 10:07:41
|
|
|
Töötaks küll.
Ja teeks ilmselt täpselt seda, mis kästud, kuid see ei pruugi kokku langeda sellega, mis tegelikult vaja on.
Nimelt laeb brauser ära HTML-i ja JS-i lõplikul kujul. Seega uuendaks selline kood iga poole sekundi järel kasti sisu täpselt samade väärtustega.
Värskete andmete lugemiseks peab perioodiliselt uuesti ühenduma ja lugema näiteks karu poolt pakutud faili.
Intervalli valimisel lähtu sellest, kui kiiresti andmed peale tulevad ja milleks neid kasutatakse. Kui andmed tulevad seadmest näiteks iga 10 sekundi järel, pole mõtet ka lühemal intervallil. Kui andmestik uueneb iga sajandiksekundi järel, siis tuleks võtta vaatleja reaktsiooniaeg.
Kui on vaja ainult lehte värskena hoida, siis lihtsaim oleks algse HTML päisesse selline rida lisada ja eluga edasi minna.
<meta http-equiv="refresh" content="5"> |
|
|
Kommentaarid: 36 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
35 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
18.12.2012 13:02:45
|
|
|
<meta http-equiv="refresh" content="5"> |
see kipub lehel välgatusi põhjustama.
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
raxz
HV Guru
liitunud: 27.07.2003
|
19.12.2012 00:22:36
|
|
|
Meta refresh töötab. Hetkel see jooksebki.
Kuid oleks hea, kui saaks tihedamalt uuendama nii, et tervet lehte laadima ei peaks. Lehele tulevad ka nupud ja muid vidinaid.
Olen täna natuke maadelnud süsteemiga.
See kood, mis ülal välja pakkusin, ei tööta. Lehte, kus need AWP'd, peab füüsiliselt uuesti laadima. JS'ga ei osanud ma sealt midagi küsida.
Kas on võimalik äkki teha varjatud iframe, mida pidevalt uuendatakse ning sealt võetakse parent lehele muutujate väärtused ning uuendatakse div'de sisu?
|
|
Kommentaarid: 46 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
45 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
19.12.2012 09:09:11
|
|
|
Vaata Jquery poole, lihtne load() peaks sinu mure lahendama.
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
raxz
HV Guru
liitunud: 27.07.2003
|
19.12.2012 10:19:37
|
|
|
andrusny kirjutas: |
Vaata Jquery poole, lihtne load() peaks sinu mure lahendama. |
load() pöördub siis mingi faili poole, mis annab talle info edasi? Kuidas ma seda edasi kasutada saan?
Ma ei taha mingit kindlat lehe osa laadida vaid tahan saada muutujad, millega saaks arvutusi teha.
|
|
Kommentaarid: 46 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
45 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004

|
19.12.2012 13:07:56
|
|
|
raxz, kui sul kindel ports muutujaid, väärtuseid vms, siis võid need otse javascripti faili salvestada ja sealsamas sees toimetada?
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
raxz
HV Guru
liitunud: 27.07.2003
|
19.12.2012 17:03:15
|
|
|
mikk36 kirjutas: |
raxz, kui sul kindel ports muutujaid, väärtuseid vms, siis võid need otse javascripti faili salvestada ja sealsamas sees toimetada? |
kusjuures see on päris hea mōte. Proovin kunagi.
|
|
Kommentaarid: 46 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
45 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
19.12.2012 19:50:38
|
|
|
See funktsioon, mis andmeid loeks oleks midagi sellist
javascript:
|
<script type="text/javascript" src="jquery-1.4.2.min.js"></script> <script> var andmed = 0; $(document).ready(function(){ function ref(){ $('#box').load('data.php'); // teed oma andmetega seda mis soovid alert(andmed); } $('#n1').click(function(){ ref(); }); }); </script> </head> <body> <div id="box"></div> <input type="button" value="Click" id="n1">
|
ja sisse loetavad andmed peaksid olema selliselt teisel lehel
<script>
andmed = 18;
</script> |
Nupu asemele paned selle timeri, mis sul ennem oli ja kui teisel lehel muutujat viide muudad muutub see ka esimesel.
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
|