Wojciech Mazurek

Wojciech Mazurek właściciel, PPHU
Neuron

Temat: Kilka pytan od beginera

Witam
Na codzien pisze soft w delphi i poza zrobieniem wlasnej strony w htmlu z elementami javascript (js na zasadzie malpy - copy/paste) nie mam zadnych doswiadczen w aplikacjach webowych.

Jestem jednak zmuszony dopisac do mojego softu serwer webowy i zrobic lekko inteligentny serwis www do sterowania programem z przegladarek

Ma dzialac w normalnych przegladarkach ale tez na wynalazkach typu android (do testowania planuje sprawic sobie tab galaxy) i telefonach - choc w telefonach to ma byc tylko opcja minimum.
Bez zadnych pluginow, maszyn java itp.

Moj serwer wysyla dokumenty i pliki z dysku oraz tworzony w locie (w kodzie) tekst, przejmuje post i get od strony. Nie obsluguje skryptow PHP.

Generalnie mam jedno pytanie ogolne i jedno szczegolowe. Proboje sie zapzyjanzic z jquery - czy jquery w podstawowych funkcjach bedzie proacowalo na tabletach i smartfonach?

A teraz prosba o pomoc w konkretnej sprawie
Program ma miedzy innymi wyswietlac szybkozmienne dane. Przeladowania calej strony oczywiscie odpada. Znalazlem (jeszcze nei trenowalem) kilka pryzkladow uzycia ajaxu z JQuery. Jesli dobrze zrozumialem moge sobie zdefiniwoac DIVa i go odswierzac cyklicnzie - to by juz bylo to ale chcialbym jeszcze jedna opcje i tu juz nie mam pojecia jak to zrobic:

Przegladarka pyta serwer (np post) o to czy sie zmienilo cos w danych, jesli tak to przeladowuje cala strone ale w taki sposob zeby na czas przeladowania poprzednia zawartosc byla niedostepna do klikania i przewijania ale zeby nie znikala (jakis maly symbol odsiwrznia na jakim popupie albo cos)
Jako odpowiedzn na post moge odeslac cokolowiek "0" albo "1". plik htmal A albo b etc.

I jeszcze jedna pulapka - zassysane beda grafiki ktore beda tworzone przed wyslaniem (wykresy) ale bedize to caly czas plik np trend1.jpg.
Doczytalem ze mozna w mecie wylaczyc kesz ale nie chcalbym go wylaczac na stale - idealem bylo by gdyby w odpowiedzi serwer zadecydowal czy ponownie ladowac grafiki czy mozna je ladowac z lokalnego cache.

Jakby sie komus chcialo rozwazyc taki problem i mi go LOPATOLOGICZNIE opisac to bylbym wdzieczny.
pozdrawiam wojtek

konto usunięte

Temat: Kilka pytan od beginera

Trochę to zagmatwane i rozpisane w wersji "opowiadanie", więc zapytam dla jasności - ma być komunikacja jednokierunkowa serwer => klient? Czyli przeglądarką nic nie przesyłasz, lecz jedynie cyklicznie odbierasz informacje z serwera? Jeśli tak to lektura do snu: http://dev.w3.org/html5/eventsource/ :)
Jakub L.

Jakub L. Programista

Temat: Kilka pytan od beginera

Serwer ma ci działać na telefonach? Jak nie, to się nie przejmuj, mocniejsze telefony mają pełnofunkcjonalne przeglądarki, więc jak im pamięć pozwoli i wydajność, to to co hula na desktopach powinno pójść także na (smart)fonach.
Wojciech Mazurek

Wojciech Mazurek właściciel, PPHU
Neuron

Temat: Kilka pytan od beginera

Kamil B.:
Trochę to zagmatwane i rozpisane w wersji "opowiadanie", więc zapytam dla jasności - ma być komunikacja jednokierunkowa serwer => klient? Czyli przeglądarką nic nie przesyłasz, lecz jedynie cyklicznie odbierasz informacje z serwera?

Znacznie upraszczajac i zagadnienie i opowiadanie
Wlasny prosty serwer wbudowany w inny program
na dysku obrazek wykres_temperatury.jpg tworzony na nowo co kilka minut
Serwer zna tez temperature ktora musi udostepnic - np tworac tekst (nie plik) html
Serwer dekoduje zdarzenie post i jesli parametr woda=on to wlaczy pompe wody
i w tekscie html podmieni odpowiedni tekst <img> aby wyswietlana byla ikona zalaczonej pompy a nie wylaczonej

klient wyswietla i wysyla metoda post polecenia dekodowane przez serwer.
Raz na pccie raz na smartfonie czy tablecie.

Wszytsko jest dla mnie proste do momentu organizacji tego wszytskiego w taki sposob aby odswierzyc "widok" w przegladarce tylko tego co sie zmienilo.
Tak jak przeladowanie calej strony po wykonaniu post jest do przyjecia tak odswierzanie calej strony aby pokazac aktualna temperature i obrazek z wykresem bo moze sie zmienil juz do przyjecie nie jest.

Wiem ze slowem wytrychem jest ajax - ale ajax raczej kojazy mi sie z plynem do sprzatania ;)

konto usunięte

Temat: Kilka pytan od beginera

Wojciech Mazurek:
No to prosta sprawa i możesz do tego użyć Server-Sent Events lub XMLHttpRequest (AJAX). Obie technologie są bardzo proste w użyciu, przykładowo:

var request = new XMLHttpRequest();
request.open('GET', 'weather.xml', true);
request.onreadystatechange = function() {
if (this.readyState == this.DONE && this.status == 200 && this.responseXML != null) {
document.getElementById('temperature-map').setAttribute('src', this.responseXML.getElementById('temperature-image').textContent);
}
};
request.send();


Dodatkowo, jeśli zdarzenie ma być wywoływane cyklicznie to przyda się requestAnimationFrame czy setInterval.

konto usunięte

Temat: Kilka pytan od beginera

Wojciech Mazurek:
No to prosta sprawa i możesz do tego użyć Server-Sent Events lub XMLHttpRequest (AJAX). Obie technologie są bardzo proste w użyciu, przykładowo:

var request = new XMLHttpRequest();
request.open('GET', 'weather.xml', true);
request.onreadystatechange = function() {
if (this.readyState == this.DONE && this.status == 200 && this.responseXML != null) {
document.getElementById('temperature-map').setAttribute('src', this.responseXML.getElementById('temperature-image').textContent);
}
};
request.send();


Dodatkowo, jeśli zdarzenie ma być wywoływane cyklicznie to przyda się requestAnimationFrame czy setInterval.

konto usunięte

Temat: Kilka pytan od beginera

Wojciech Mazurek:
No to prosta sprawa i możesz do tego użyć Server-Sent Events lub XMLHttpRequest (AJAX). Obie technologie są bardzo proste w użyciu, przykładowo:

var request = new XMLHttpRequest();
request.open('GET', 'weather.xml', true);
request.onreadystatechange = function() {
if (this.readyState == this.DONE && this.status == 200 && this.responseXML != null) {
document.getElementById('temperature-map').setAttribute('src', this.responseXML.getElementById('temperature-image').textContent);
}
};
request.send();


Dodatkowo, jeśli zdarzenie ma być wywoływane cyklicznie to przyda się requestAnimationFrame czy setInterval.



Wyślij zaproszenie do