Ajax i pobieranie zewnętrznych plików
Przedstawiony poniżej kod jest już lekko przestarzały. Zalecam stosowania biblioteki jQuery, która jest prosta w użytkowaniu i współpracuje z wszystkimi popularnymi przeglądarkami.
Istnieje multum skryptów oferujących obsługę AJAXa. Są projekty duże oferujące bardzo dużo lecz trudne w nauce i są też proste wykonujące określoną czynność. Te drugie łatwo znaleźć na lepszych stronach ze skryptami JS/DHTML. Jedną z takich stron jest www.dynamicdrive.com. Poniżej zaprezentuję jeden ze skryptów pobierający z wykorzystaniem AJAXA inną stronę. Jest to proces asynchroniczny (może być też synchroniczny ale ten skrypt tak to robi...) czyli ładowanie się zewnętrznej strony nie wpływa na stronę macierzystą (przykład poniżej).Poniższy kod zapis do pliku *.js, ja zapisałem jako: ajaxGetFile.js Następnie stwórz dwa pliki: test.php o zawartość: Oraz index.php: Po otwarciu w przeglądarce pliku index.php pojawi się napis "Asynchroniczny Ajax" a po 5 sekundach nad nim pojawi się PHPINFO. W tagu body mamy atrybut "onload" co oznacza "zrób coś przy ładowaniu strony. Jak widać w czasie ładowania strony rozpoczął się proces ładowania zewnętrznej strony lecz nie zablokował on ładowania się strony głównej. Skrypt ten zadziała pod każdą współczesną przeglądarką z tym że w Konquerorze (KDE 3.5.2) czy Operze (8.52) sypnie się formatowanie załączanej strony (phpinfo w tym przypadku). Pod Firefoxem 1.5.0.1 formatowanie zostanie zachowane.
Ładowanie pliku wyzwala funkcja javascript:ajaxpage('NAZWA PLIKU', 'ID DIVA'); gdzie ID DIVa to id taga DIV w kodzie strony. Jego zawartość zostanie zamieniona na treść ładowanej strony. Oprócz ładowania przez body można to robić w bardziej standardowe sposoby, np poprzez link:
RkBlog