Php generuje soubor. Soubor (data) muze byt obrazek, video, html, js, css, text, mp3, ... nebo jiny kod.
Pr. takovy jednoduchy ajax bez pouziti js httprequestu.
--- x.php ---
<?php
echo 'var a,b,c;';
echo 'a=3;';
echo 'alert(a);';
?>
--- y.htm ---
<script src="x.php"></script>
--- y2.htm ---
<script id='aaa'></script>
<script>document.getElementById('aaa').src='x.php';</script>
Js ajax dela to, ze stahne ze serveru soubor (anicka.jpg nebo soubor.php?name=anicka.jpg). Totez dela treba tag iframe src=..., img src=..., script src=..., link. Cili, ajax dela neco podobne jako v php file_get_contents. Jenom obvykle byva nastaveny asynchronne, jakoze stahuje napozadi a proto je treba k nemu pridat navratovou funkci. Priklad zapisu
function stahuj(soubor, cb) {...}
function stahuj_cb(data) {alert(data);}
stahuj('soubor.php?name=anicka.jpg', stahuj_cb);
stahuj('soubor.php?name=anicka.jpg', window.stahuj_cb); // nebo
stahuj('soubor.php?name=anicka.jpg', window['stahuj_cb']); // nebo
stahuj('soubor.php?name=anicka.jpg', top.window['stahuj_cb']); // pro subframe
stahuj('soubor.php?name=anicka.jpg', top.stahuj_cb); // pro subframe
x = new mujAjax();
x.file = 'soubor.php?name=anicka.jpg';
x.callback = window.stahuj_cb;
x.zacniStahovat();
To je jen priklad, jak to asi funguje. Jak je udelany ten objekt mujAjakx ve tvem programu vubec netusim.
Kdyz chces stahovat treba 10 souboru naraz, tak bys mel nekde promennou, kde bys ukladal, zda je to completed a kdyz jse vsech 10, tak zavolas treba dalsi funkci. Nebo to muzes stahovat postupne, nastavis prenos na synchronni. A nebo muzes pouzit i asynchronni, ale pak to ale budes mit kaskadne.
stahuj('soubor1', stahuj2);
stahuj2('soubor2', stahuj3);...
Nevyhoda synchronniho je, ze program ceka, az se js vykona, dostahuji data. Takze se to moc nepouziva.