ObjectHTML
Wstęp - geneza, zastosowania |
Pliki nagłówkowe wygenerowane przy pomocy makedefs mogą być wykorzystane w projektach CGI, specjalistycznych modułach serwera HTTP lub portalach zbudowanych w technologiach ASP, PHP. Stałe zdefiniowane przez program konwertujący będą użyte do generacji dynamicznych stron HTML. Przykładowa zawartość pliku do konwersji: <!--MYDEF htmlbegin--> <html> <head> <title>tutuł strony</title> </head> <body> <!--ENDMYDEF--> <!--MYDEF htmlend--> </body> </html> <!--ENDMYDEF--> Plik wynikowy konwersji do C++ będzie miał następującą zawartość: const char *htmlbegin = "<html>\n<head>\n<title>tutuł strony</title>\n</head>\n<body>\n" const char *htmlend = "</body>\n</html>\n" Korzystanie z tak zdefiniowanych stałych jest trywialne. Najprostszy program napisany w C i korzystający z interfejsu CGI do komunikacji z serwerem WWW może mieć następującą postać: #include <stdio.h> #include <index.h> int main(int argc, char *argv[]) { printf("Content-type: text/html\n\n"); printf("%s",htmlbegin); printf("Hello world\n"); printf("%s",htmlend); } Dzięki takiemu rozwiązaniu kod HTML może być oddzielony od kodu programu. Zmiany w układzie strony nie będą wymagały żadnych zmian w programie, będzie potrzebna tylko jego rekompilacja. Takie podejście to generacji dynamicznych stron przy wykorzystaniu stałych tekstowych ma jeszcze jedną dodatkową zaletę: szybkość działania. Proszę zauważyć, że stałe są bezpośrednio wypisywane na standardowe wyjście, które jest przekierowane do serwera WWW, a następnie wysyłane do przeglądarki. Dla kontrastu proszę wyobrazić sobie powszechnie stosowane rozwiązanie korzystania ze wzorców (ang. template), gdzie wzorzec strony HTML jest zapisany w pliku. Program korzystający z takiego wzorca musi na początku wczytać taki plik, a następnie go przetworzyć. Polega to na zamianie parametrów wzorca na właściwą treść, operacja zamiany części tekstu na inny jest dosyć czasochłonna. |