Samouczace sie browsery?

Autor: Grzesiek Staniak (gstaniak_at_golem.umcs.lublin.pl)
Data: Mon 12 Feb 1996 - 19:54:38 MET


Jan Rychter wrote:

Zmienie troche kolejnosc...

> Spojrz na http://www.geom.umn.edu:80/~rminer/jmath/ -- tam dosc ladnie
> pokazane jest o co mi chodzi (tyle, ze bez SGML). Nie wiem jak inaczej
> moglbys osiagnac takie efekt bez gruntownej reformy wszystkich
> browserow WWW na rynku.

Owszem, robi wrazenie. Jednak juz tytul "math without GIFs" jest mylacy -
GIFy tam sa, tyle ze ladowane poprzez applet. A HTML uzyty na stronie
nie zawiera matematyki (= zawiera tylko przyklady). W ten sposob nie
mozna np. uzyc parsera do przetwarzania oznaczen, nie mozna tez np.
takiej strony konwertowac/formatowac TeXem czy innym Postscriptem, bo
cala matematyka jest parametrem APPLETu... ktory bedzie przez filtry
pominiety. Nadal uwazam, ze lepiej po prostu napisac przegladarke
obslugujaca MATH (Arena to potrafi, wiec mozna). I wtedy otrzymujac w
naglowku HTTP cos w stylu "Accept-HTML: HTML3.MaTH HTML3.Tables
Figures Extended.Forms" serwer podaje dokumenty deklarowane z
rozszerzonym modularnym DTD albo wlaczajac/pomijajac odpowiednie sekcje
u siebie, albo z przestawionymi odpowiednio "IGNORE/INCLUDE" - o ile
client stosuje mechanizmy SGML po swojej stronie, co tez mogloby byc
w takim naglowku sygnalizowane. Czyli kto potrafi, dostaje MATH, a kto
nie - strony z GIFami...
 
> Nie, nie, nie. W DTD zdefiniowana jest tylko struktura
> rozszerzenia. Nie to jak je nalezy wyswietlac. Zas podejscie typu
> 'if...then...else' musi sie skonczyc porazka (patrz ewolucja
> programowania proceduralnego w kierunku obiektow). Nie ma po prostu
> sensu zeby kazdy serwer (lub kazdy dokument) wiedzial o kazdym
> browserze i kazdym rozszerzeniu i jakos sie do nich dostosowywal.

No, content/feature-set negotiation jakis tam sens na pewno ma. Dla
typow MIME na pewno. Dla jezyka tez. Co do "if..else", nie wiem.
Jakis czas temu jeden administrator pisal gdzies na Usenet chyba,
ze u niego wszystkie strony beda trzymane w obiektowej bazie danych,
i na podstawie UserAgent bedzie po prostu dla konkretnej strony
uzywana metoda "pokaz sie odpowiednio". Poza tym to mu zalatwi problem
zlych linkow (mozna napisac taka aplikacje, ktora nie pozwoli uzyc
lokalnego URLa blednego lub niestniejacego), zdalna edycje (ludzie
beda sie logowac w bazie i edytowac tylko to, co im bedzie wolno),
plus pare innych rzeczy. Z drugiej strony, caching diabli wzieli.
 
> Zgadzam sie z Toba w 100% co do SGML -- kazde rozszerzenie powinno
> miec swoj DTD. Powinien byc jakis standard sciagania tych DTD (czy
> odpowiedni argument do doctype to zalatwia ? Np URL ?).

Mozesz uzyc <!DOCTYPE HTML SYSTEM "/sciezka/do/pliku">, proponowano tez
<!DOCTYPE HTML SYSTEM "http://publiczny.serwer.DTDs/costam.dtd">, ale
o ile wiem, nikt tego nie zaimplementowal.

> Ale w taki sam
> sposob rozproszone powinno byc wyswietlanie tychze rozszerzen -- nie
> Ty masz wiedziec jak je wyswietlac, tylko samo rozszerzenie. DTD
> byloby wtedy tylko dodatkiem, umozliwiajacym sprawdzenie poprawnosci
> syntaktycznej.

Hm. DTD jako dodatek... W ogole caly czas mam wrazenie, ze cos tu jest
postawione na glowie. Caly proces mialby, o ile rozumiem, wygladac tak:

- klient zamawia strone
- serwer przesyla najpierw DTD, potem dokument
- klient uzywa DTD do analizy dokumentu
- klient zamawia dyrektywy do prezentacji elementow, ktorych nie
  rozpoznaje/nie potrafi obsluzyc (w postaci np. appletu)
- serwer podaje zamowione dyrektywy
- klient wyswietla dokument

Niestety, jest tutaj problem. Proste dyrektywy dotyczace prezentacji
(pokaz element BLABLA jako wyrownany do lewej tekst w czcionce Times
24 p koloru niebieskiego) nie sprawialaby problemow, to z drugiej
strony nie ma wiekszego sensu wprowadzania dla nich specjalnych
mechanizmow, skoro da sie to zrobic przy pomocy stylesheets, niezle
juz dopracowanych. Z kolei rzeczy bardziej zlozone (matematyka,
wysylanie plikow systemowych przez formularz, obsluga innych typow
danych inline, itp. ) nie dadza sie opisac takimi instrukcjami.
Jak w Javie napiszesz cos, co powie "jesli dostaniesz taki kawalek
kodu, po kliknieciu w tym miejscu pokaz okienko wyboru pliku i
potem wyslij go metoda POST do serwera". Nie do zrobienia w sposob
niezalezny od systemu o ile nie bedzie calego wielkiego API dla
takich rzeczy.
 
 
> pozdrawiam,
> jwr
> _______________________________________________________________________
> Jan Rychter jwr_at_itc.pw.edu.pl
> http://www.itc.pw.edu.pl/~jwr jwr_at_icm.edu.pl

Z wzajemnoscia,

--
Grzesiek Staniak
gstaniak_at_golem.umcs.lublin.pl  -  http://www.lublin.pl/~gstaniak/


To archiwum zostało wygenerowane przez hypermail 2.1.7 : Wed 19 May 2004 - 15:54:50 MET DST