Avatar billede remis Nybegynder
25. marts 2006 - 18:22 Der er 23 kommentarer og
2 løsninger

Check sidste opdatering af fil

Er det muligt at lave et loopet(hvert sek.) javascript som checker hvornår en txt-fil på en server sidst er blevet redigeret. Og hvis filen er redigeret senere end sidst scriptet testede, hente et dokument?

-Jeg vil ik bruge en masse tid på at forsøge hvis det slet ik kan lade sig gøre. Derfor dette ja/nej spørgsmål :]
Avatar billede roenving Novice
26. marts 2006 - 05:12 #1
Javascript kan kun lave en request, altså hente filen, det kan derfor ikke lade sig gøre uden at filen faktisk hentes !-)
Avatar billede remis Nybegynder
26. marts 2006 - 12:20 #2
hm tænkte det nok... hvad findes der af altenativer som kan gør ca. det samme?
Avatar billede mclemens Nybegynder
26. marts 2006 - 12:39 #3
hvis du har php eller asp kan du have et script der når man laver en js forespørgsel på at hente filen der ligger på stien: ww w.ditdomænde.dk/checklastedit/minfil.html

hvor der via htaccess rewrites over til checkfile.php der kigger hvornår filen sidst er opdateret, sender besked (sender 1 fil kun med et ime stempel) retur til dit js script js scriptet henter så filen ww w.ditdomænde.dk/getfile/minfil.html hvis timestemplet er nyere end det tidligere... det burde være muligt :P så et lille ja
Avatar billede mclemens Nybegynder
26. marts 2006 - 12:46 #4
... det blev vist lidt kludret formuleret :P

Hvis du har php eller asp kan du have et script der laver en js forespørgsel (henter en fil fra): ww w.ditdomænde.dk/checkfile.php?file=minfil.html&lastfile=tidligere_timestamp_på_nuværende_fil

checkfile.php tjekker hvornår filen sidst er opdateret, og hvis den er nyere end den timestamp js scriptet, leverede sender den den nye fil ... ellers sender den en fil med indholdet newcontent=no;newtimestamp=bla.bla

Js filen tjekker om filen indeholder newcontent=no; og hvis den gør tager den - den nye timestamp hvis den ikke indeholder newcontent=no; erstatter den - den tidl. fil med den nye da indholdet er ændret...

- det er nok lidt indviklet ved nærmere eftertanke :P
Avatar billede remis Nybegynder
26. marts 2006 - 13:04 #5
okay... men kræver det ik at browseren henter checkfile og opdatere hver gang js bliver kørt?
Avatar billede mclemens Nybegynder
26. marts 2006 - 13:20 #6
jo, men den indholder så kun

hvis den ikke er opdateret siden sidst:
newcontent=no;newtimestamp=0;

- ved no henter js ikke den nye fil


hvis den f.eks. skal opdateres:
newcontent=yes;newtimestamp=12131456447897;

- ved yes udskifter js sin timestamp og henter den nye fil


... ovenstående procedure gentages herefter efter x antal sekunder



- uanset om du laver en forespørgsel på den ene måde eller skal der køre data frem og tilbage på nettet... normalt vil du få header dataer tilsendt sammen med dine forespørgsler - men, da javascript ikke kan forespørge via. headers og php/asp kan læse en vilkårlig fils sidste opdaterings tidpunkt på serveren kan den sende en minifil afsted med oplysning om hvorvidt der er en ny fil til browseren ... vi snakker om et overhead på ca. 40 - 50 byte (tror jeg nok - d.v.s. det den ekstra fil fylder) :P
Avatar billede mclemens Nybegynder
26. marts 2006 - 13:22 #7
newcontent kan selvfølgelig også fjernes og så nøjes man med
newtimestamp=0; (ny fil hentes ikke)
newtimestamp=12131456447897; (ny fil hentes)
- det halverer selvfølgelig næsten filen der hentes...
Avatar billede mclemens Nybegynder
26. marts 2006 - 13:44 #8
- hvis du tænker på noget chat-update via. js refresh så kan den nye fil jo bare bestå af f.eks.:
<div class="container">
<div class="leftavatar"><img src="myavatarclemens.jpg"></div>
<div class="message">Hej J.</div>
</div>
<div class="container">
<div class="leftavatar"><img src="myavataranonymousj.jpg"></div>
<div class="message">Hej Clemens, skal vi chatte</div>
</div>

og herefter erstatte indholdet i en div på siden
(bør nok gøres med jsdom metode, dog er innerHTML måske nemmest) :P
Avatar billede remis Nybegynder
26. marts 2006 - 14:32 #9
ja det er netop det jeg tænker på :) Har set det blive brugt på google, og der kørte det helt flydende.

Vil det evt. være helt tåbeligt at lave en frame med et php script i som checker for opdatering og '<meta http-equiv="refresh" content="1" Url="x.php">'(51 bytes) som det eneste browseren skal hente hvis der ik er ændret noget?
Jeg håbede jeg kunne undgå refresh ved at bruge js, da grafikken på siden blinker hvar gang. men hvis man ik kan komme uden om det, kan jeg ligeså godt undgå js som jeg ikke er så stiv i...
Avatar billede mclemens Nybegynder
26. marts 2006 - 15:01 #10
Har set det blive brugt på google, og der kørte det helt flydende.>
ja, ajax (forkortelse for javascript og et eller andet :P)

Vil det evt. være helt tåbeligt at lave en frame med et php script i som checker for opdatering og '<meta http-equiv="refresh" content="1" Url="x.php">>
... nej det kan man selfølgelig gøre :P

- kan dog også måske ændre et src på et js script på siden og på den måde undgå frames (har ikke så meget tid idag så hæng mig ikke op på noget :P )
Avatar billede mclemens Nybegynder
26. marts 2006 - 20:45 #11
dang, det er indviklet lige at lave sin egen chat...
det var test designet - så mangler jeg bare den der
henter dataer frem og tilbage fra en db evt. :P
(hvis jeg kan hitte ud af det ... )
Avatar billede remis Nybegynder
26. marts 2006 - 22:25 #12
heh ja lidt. Jeg ville bare lave en lille simpel chat... den er nu blevet til nogle hundrede liniers php og mange timers html og javascript. Men det er lærrigt :)
Jeg går sq efter en ekstra frame... chatten er i forvejen lavet i frames, så det kan jeg vel ligeså godt.
Avatar billede mclemens Nybegynder
26. marts 2006 - 23:13 #13
her er lidt, skal arbejde videre på den senere :P (kun js'en)
... glemte at tjekke css design i FF'eren så det er ikke alt for kønt p.t. ... dog burde den give indtryk af at det kan gøres - skal lige finde ud af hvorfor ff'eren går i baglås med scriptet ... prøv at downloade den her for ide om det:
ww w.  d  kif.co m/tmps/chat.zip <- ryk mellemrun sammen ingen direkte link da det er en tmp fil ...
Avatar billede mclemens Nybegynder
26. marts 2006 - 23:18 #14
... m.h.t. scriptet skal jeg lige lære js, det er vist ikke helt ok bare at skifte scriptet på en side... m.h.t. til design - ja det laver du vel selv alligevel :P
Avatar billede mclemens Nybegynder
26. marts 2006 - 23:22 #15
... m.h.t. scriptet skal jeg lige lære js,
skulle have været ... m.h.t. scriptet skal jeg lige lære ajax,
Avatar billede mclemens Nybegynder
26. marts 2006 - 23:23 #16
Jeg går sq efter en ekstra frame... chatten er i forvejen lavet i frames, så det kan jeg vel ligeså godt.>
- havde ikke lige læst det... ok :)
Avatar billede mclemens Nybegynder
26. marts 2006 - 23:32 #17
http://24ways.org/advent/easy-ajax-with-prototype
- her er lidt om ajax hvis du også er nysgerrig :P
Avatar billede remis Nybegynder
28. marts 2006 - 11:06 #18
jeg fandt lige det her: http://www.eksperten.dk/spm/320350 (Olebole blinkfri chat). Det løser jo problemet som spørgsmålet bunder i.

Ja man bliver vist nød til at kikke på ajax en dag :]
Avatar billede mclemens Nybegynder
28. marts 2006 - 11:33 #19
jeg fandt lige det her... Ja man bliver vist nød til at kikke på ajax en dag :]>
- Ja, den kan jo bruges... vælger dog at sætte mig ind i ajax samt dom append og remove - det tager bare noget tid (har ikke noget at bruge en chat til, men ajax det ville være sejt) :P
Avatar billede remis Nybegynder
03. april 2006 - 18:35 #20
ja det er jo det... Løsningen med frames dækker mit behov, så ajax må vente til en anden dag hvor jeg har tid. :P

roenving, mclemens, lægger I et svar?
Avatar billede mclemens Nybegynder
03. april 2006 - 18:37 #21
ok :)
Avatar billede roenving Novice
05. april 2006 - 21:03 #22
Oki '-)
Avatar billede remis Nybegynder
07. april 2006 - 08:21 #23
5 til roenving for første og rigtigt svar.
5 til mclemens for god feedback.
Nu skal I ikke ødsle alle de mange point væk. :P
Jeg takker.
-René
Avatar billede roenving Novice
08. april 2006 - 12:34 #24
-- og jeg takker for point ;~}
Avatar billede mclemens Nybegynder
08. april 2006 - 12:48 #25
det gør jeg også :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester