![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 146 Pomógł: 0 Dołączył: 9.03.2006 Skąd: Columbus Georgia Ostrzeżenie: (0%) ![]() ![]() |
Kilka lat temu (przed Ajax-em) opracowalem Iwa
(Interactive Web Architecture) Oparta jest on na wymianie Content Objects (javascript,php,python objekty) uzywajac Iwa servisow zamimplementowanych w POST and GET ktore korzystajac z frame lub iframe. Content jest zapisywany podobnie jak w JSON i dopowiednio konwertowny na javascript, php lub python objekty bez koniecznosci parsowania. Obecne sa trzy implementacje Iwa Ligt - do pisania statycznych portali (multi browsers) Mix - do pisania interatywnych portali (multi browsers) Heavy - to pisania interatywnych aplikacji z skomplikowanym GUI ( tylko IE) Polsugiwanie sie Ajax-em to jak poslugiwanie sie telefonem z koniecznosci znajomosci jak on dziala technicznie. W Iwa jest to banalnie proste np: wywolanie service z browsera: MyIwa.service("ServicePage.php","nazwa_servisu", [ ["sa","nazwa_parametru",java script object lub wartosc)], ["sa",".........................",......................................], ["sb",java script object] ["sr",responseFunction]]); function responseFunction(body, args, error) { // odpowiedz na wywolanie if(error) return ; // if error var value=args.get("nazwa_parametru"); // wartosci lub javascript object } po stronie php implementacja service w ServicePage.php: $_iwa = new MyIwa(); if(!$_iwa->is_forward()) // forward service do innego web servera switch($_iwa->service()) { // jaki servis zostal wywolany z browsera case "nazwa_servisu": $nazwa_paramatru = $_iwa->arg("nazwa_parametru"); // pobranie pramateru z request service $_iwa->arg("nazwa_parametru",php_object lub wartosc); // odwiedz na service $_iwa>errror("Ustawienie bledu aplikacji"); // ustawienie bledu jesli jest $_iwa->response(); // wyslanie odpowiedzi do browera na wywolanie servisu break; } Iwa service mozna uzywac w dwoch opcjach push and pull. Iwa umozliwia wywolywanie servisow z browsera umiejscowionych na roznych web serwerach.Wtedy web server z ktorego zaladowano strone forwarding ten servis to innych web serwera. Czyli mozliwe jest tworzenie eco-systemu servisow zaimplementowanych na roznych web serwerach. (Ajax nie implementuje tej opcji). Rozmiar podstawowych bibliotek do implemntacj Iwy jest minimalny: javascript - 500 lini kodu php - 600 lini kodu python - 200 lini kodu Sporo aplikacji zostalo juz napisanych w Iwa i obserwacja moja jest taka, ze czas ich pisana aplikacja skraca sie okolo 10 razy i ich jakosc jest zdecydowanie wysoka.. Jesli ktos ma jakies zapytania o IWA prosze o kontakt .. 060157@gmail.com |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 146 Pomógł: 0 Dołączył: 9.03.2006 Skąd: Columbus Georgia Ostrzeżenie: (0%) ![]() ![]() |
Masz racje IWA budzi wiele kontrowersji.
Sa osoby ktore ja calkowicie popieraja i sa takie co totalnie ja neguja ... A w demo chodzilo mi o zaprezentowanie jak sie uzywa IWA serwisow i zalaczylem dwa: Login s i serwis ktory generuje rozne dialogi. Przedstawione demo testowalem pod Firefox 1.5.0.1 i przynajmiej u mne chodzi bez problemu.... Zalaczam javascript kod, ktory implementuje te serwisy: function onService(mode) { if(mode) { Cube.hideMessage(); Cube.info("REQUEST SERVICE","Request Service is processing ...","bservice"); } MyService.service("IwaServices.php","html",[["sa","is_email",Gui.getChecked("sr_isemail")], ["sa","email",Gui.getText("sr_email")], ["sr",onService_response]]); function onService_response(body, args, error) { if(Cube.message("REQUEST SERVICE ERROR",error,"","bservice")) return ; Gui.setInnerHtml("request_service_table",args.get("html")); if(mode) Cube.hideMessage(); if(Gui.getChecked("sr_loop")) setTimeout("onService()",0); } } function onLogin() { var login = Gui.objectFromView("login","user;password"); if(!login.user || !login.password) return Cube.message("LOGIN ERROR","Please enter user name and password","Gui.setFocus('login.user')","blogin"); MyService.service("IwaServices.php","login",[["sb","login",login], ["sr",onLogin_response]]); function onLogin_response(body, args, error) { if(Cube.message("LOGIN ERROR",error,"Gui.setFocus('login.user')","blogin")) return ; obj_login_box.hidePopup(); } } Ps. sprobuj podejrzec javascript cody, spotka Cie niespodzianka ... dziekuje za uwagi i pozdrawiam .. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 10:03 |